我有一种情况,日期是"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 表示无效时间。例如,当
时钟向前调整,在跳过的时间段内的任何时间
是无效的。参数名称:日期时间
尝试检查时间是否不明确或有效时间。由于日光变化 http://www.timeanddate.com/time/zone/usa/little-rock?syear=1990您提到的时间,即 2:41:00 AM 不存在,因为时钟提前了 1 小时,因此日期无效或不明确。
2016 Sun, 13 Mar, 02:00 CST → CDT +1 hour (DST start) UTC-5h
Sun, 6 Nov, 02:00 CDT → CST -1 hour (DST end) UTC-6h
您也可以参考这个博客:System.TimeZoneInfo:使用不明确和无效的时间点 https://blogs.msdn.microsoft.com/bclteam/2007/06/11/system-timezoneinfo-working-with-ambiguous-and-invalid-points-in-time-josh-free/
System.TimeZoneInfo(当前作为 .NET Framework 3.5 的一部分提供)
Beta 1) 包含用于检查 DateTime 实例是否存在的方法
表示特定时区中不明确或无效的时间。这些
方法对于验证用户提供的点特别有用
时间。
背景资料
调整夏令时时间的时区(在大多数地区)
通过将时钟时间向后或向前移动 1 小时的情况)有间隙
并在时间线中重复 - 无论时钟时间移动到哪里
通过调整向前或向后。让我们使用太平洋标准时间作为
一个例子。 2007 年太平洋标准时间 (PST) 更改为太平洋时间
夏令时 (PDT) 第二个星期日凌晨 02:00(“春天到来”)
三月,然后在第一个星期日凌晨 02:00(“回落”)返回
十一月
要检查时间是否有效,您可以使用:
TimeZoneInfo.IsInvalidTime
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)