日期时间解析错误:提供的日期时间表示无效时间

2024-01-04

我有一种情况,日期是"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(使用前将#替换为@)

日期时间解析错误:提供的日期时间表示无效时间 的相关文章

随机推荐