2011 年 11 月 6 日凌晨 2 点(美国东部标准时间,例如在纽约),根据夏令时时间表,现在是凌晨 3 点。
有人知道为什么TimeZoneInfo.ConvertTime
.NET 框架中的函数返回以下内容:
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var f = "yyyy/MM/dd HH:mm:ss";
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 3, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/03 07:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 4, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/04 06:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 6, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/06 06:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 7, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/07 06:00:00"
时间变化似乎发生在 11 月 4 日,这没有任何意义,因为它发生在 6 日。
编辑:哇,这个在我身上。我在代码中使用了 2012 而不是 2011。