我正在尝试计算从UTC到特定时区的时间。为此,我正在使用ConvertTimeFromUtc方法,方法是将指定的UTC时间和指定的时区显示名称的TimeZoneInfo传递给它。这适用于多个时区,但是对于-7,它使用以下(简化的)参数计算0:
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo)
然而,计算之后,它显示为{01/01/0001 00:00:00},这很奇怪,因为它适用于其他时区(例如明斯克等)
我想念什么吗?
答案 0 :(得分:0)
哼,您拥有UTC-7,因此从01/01/0001 05:02:00开始,您就处于31/12/0000 22:02:00 (或遵循美国格式的12/31/0000)
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo);
和msdn说:
DateTime值类型表示日期和时间,其值的范围是0001 Anno Domini(公共时代)从00:00:00(午夜)到公元9999年12月31日晚上11:59:59(CE)在公历中。
所以01/01/0001 00:00:00是第一个可用日期。
您什么都没错过,只是DateTime的限制
对不起,我的英语水平