1
我不得不DateTime
从本地使用特定的时区转换为UTC的方法:转换日期时间,使用时区有时UTC工作正确
TimeZoneInfo timeZone = FindSystemTimeZoneById(timeZoneId);
DateTime dateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);
return dateTimeInUtc;
但有时(我不知道什么时候,为什么,但大部分它的工作时间正确)这种转换不符合我的预期。
例如:
- 时区是
-5
- 当地时间是
08/28/2013 12:00:00 AM
(DateTimeKind
是Unspecified
)
那么在这行代码的值超过这个值后,你期望什么?
DateTime dateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);
我希望UTC时间为08/28/2013 5:00:00 AM
。但
08/28/2013 4:00:00 AM
。如果时区为-5,则不会更正。
绝对相同的代码在几个月内正常工作。即使我看过调试器转换是正确的。
大约2周前我遇到了与此代码相同的问题(错误转换)。但在第二天,问题消失了,没有任何代码更改。
但在此期间,我将UTC转换为+5小时。 1周前,使用相同的代码是5小时。 –
@SergeyGavruk你使用什么日期?一样?或者您是否恰好在3月10日之前或11月3日之后使用了日期? – Alan
hm。也许原因是因为我的日期不在这个范围内。谢谢 –