转换无效的日期时间

本文关键字:时间 日期 无效 转换 | 更新日期: 2023-09-27 18:05:34

我需要将DateTime从UTC转换为本地时间,为此,我在使用TimeZoneInfo IsInValidTime方法转换为本地时间之前验证了日期时间。

我得到无效的日期时间为一个特定的日期时间,如何将此日期转换为有效的一个?

下面是示例代码:
_timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var dateTime = "10/03/2013 2:12:00 AM";
DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).GetUniversalFormatDateTime();
if (_timeZoneInfo.IsInvalidTime(universalFormatDateTime)) Console.Write("Invalid DateTime'n");

转换无效的日期时间

您使用的是什么框架?

tuniversaltime()不是正确的选择吗?

DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).ToUniversalTime()

我猜这就是你想要达到的效果:

_timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var dateTime = "10/03/2013 2:12:00 AM";
DateTime universalFormatDateTime = Convert
                                  .ToDateTime(dateTime, new CultureInfo("en-GB"))
                                  .ToUniversalTime();
if (_timeZoneInfo.IsInvalidTime(universalFormatDateTime))
    Console.WriteLine("Invalid DateTime");
else
    Console.WriteLine("Valid DateTime");

你可以看看Convert。

您应该指定日期时间的DateTimeKind。在执行验证之前添加以下内容:

universalFormatDateTime = DateTime
   .SpecifyKind(universalFormatDateTime,DateTimeKind.Local);