【发布时间】:2016-07-25 03:28:32
【问题描述】:
我有一种情况,日期是"3/13/2016 2:41:00 AM"。当我按时区转换日期时,出现错误。
DateTime dt = DateTime.Parse("3/13/2016 2:41:00 AM");
DateTime Date_Time = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dt, "Eastern Standard Time",
"GMT Standard Time");
Response.Write(dt);
执行后,我得到这个错误:
提供的 DateTime 表示无效时间。例如,当 时钟向前调整,在被跳过的时间段内的任何时间 是无效的。参数名称:日期时间
【问题讨论】:
-
正如异常消息所述,完全正确。 3 月 13 日是美国东部标准时间从标准时间转变为夏令时的日子。没有凌晨 2:41:00,当时钟从凌晨 2 点瞬间移动到凌晨 3 点时,它被跳过了。所以你传递的值只是一派胡言。垃圾进,垃圾出。
-
这很有趣,直到有人在我们的系统中设置了 2021 年 3 月 14 日凌晨 2 点的日期时才意识到这一点。