我的代码(或者更确切地说,其他人的代码)有一个奇怪的问题。我正在调试并试图弄清楚为什么我们的时间显示错误。
无论如何,这是打印时间的代码:
Wrong value gets returned
v
[...].text="updated: "+TimeZoneInfo.ConvertTimeFromUtc(OurClass.FetchTime("TableName"), siteTimeZone).ToLongTimeString();
这是被调用的方法:
SqlCommand cmd=getConnection();
cmd.CommandText="Procedure_to_fetch_time";
cmd.Parameters.AddWithValue("@table", tableName);
object o=cmd.ExecuteScalar();
closeConnection(cmd);
if(o==null)
{
return DateTime.MinValue;
}
return DateTime.Parse(o.ToString());
^ here it's correct
我已经对其进行了调试并检查了每一个可能改变值的操作(所有的转换和东西),当方法返回值时,它是正确的。但是当它到达时,1小时已经“过去”了,现在时间不对......
有谁知道这可能是什么原因?
编辑:
回复评论:
- 该值在发生之前更改
TimeZoneInfo.ConvertTimeFromUtc
。 - 为什么反对?不知道,不是我的代码。
o.ToString()
是"1900-01-01 00:00:00"
。DateTime.Parse
也返回"1900-01-01 00:00:00"
。- 数据库正在使用
smalldatetime
. - 数据库位于客户端的同一时区。