我正在使用DateTime.ToLocalTime()
将日期从UTC转换为本地时间。我的时区是GMT + 1(贝尔格莱德,布达佩斯,卢比那...),在Windows设置(XP)中已正确设置。
在我们时区的上周末,我们将冬季时间更改为夏季时间,这意味着我们将本地时间推迟了一个小时。
从我看到的那一刻起,ToLocalTime方法的行为就很奇怪。当我用它转换这个冬天时间更改之后的日期时,它的工作原理非常好,就像这样:
var utcDate2 = new DateTime(2011, 11, 2, 9, 0, 0,DateTimeKind.Utc);
utcDate1.ToLocalTime()
的值是:2011.11.02. 10:00:00
它是正确的当我想在此更改之前转换日期(例如,夏令时的日期)时,它会返回一个错误的值,如下所示:
var utcDate1 = new DateTime(2011, 10, 23, 9, 0, 0,DateTimeKind.Utc);
utcDate2.ToLocalTime()
的值是:2011.10.23. 10:00:00
,它不正确。应为2011.10.23。 11:00:00我应该怎么做才能获得正确的值?我应该如何使用ToLocalTime来调整冬/夏令时间?
最佳答案
http://msdn.microsoft.com/en-us/library/system.datetime.tolocaltime.aspx
因此,您将不得不寻找另一种方法来解决它。