ConvertTimeFromUtc计算(UTC-07:00)亚利桑那州的00:00:00

时间:2018-09-09 15:40:22

标签: c# datetime timezone

我正在尝试计算从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},这很奇怪,因为它适用于其他时区(例如明斯克等)

我想念什么吗?

1 个答案:

答案 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的限制

对不起,我的英语水平