【发布时间】:2016-10-06 08:40:14
【问题描述】:
我们将所有时间都保存在我们的数据库中作为 UTC。根据客户端的位置,使用 .net 函数将 UTC 时间转换为本地时间
public static DateTime ConvertToLocalTime(DateTime utcTime, string timezoneId)
{
try
{
return TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTime, TimeZoneInfo.Utc.StandardName, timezoneId);
}
catch
{
return new DateTime();
}
}
有一个问题报告了一些报告在 DateTime 字段中产生了错误的结果,当我开始深入研究它时,我意识到上面称为 form SQL2008(使用 .net 3.5 编译)的相同代码如果调用会产生不同的结果来自使用 .net 4.0 编译的客户端应用程序。 2015 年智利时区的结果在 3.5 中不正确,在 4.0 中正确,当时全年都观察到 DST。
我可以假设这可能是专门为 .net 3.5 制作的缺失修补程序,目前缺失。但如果有人以前遇到过这个或类似的问题,我将不胜感激。
【问题讨论】: