0

我需要将 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");
4

3 回答 3

1

你用的是什么框架?

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

DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).ToUniversalTime()
于 2013-03-25T09:50:09.923 回答
0

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

universalFormatDateTime = DateTime
   .SpecifyKind(universalFormatDateTime,DateTimeKind.Local);
于 2013-03-25T09:41:19.487 回答
0

我想这就是你想要实现的目标:

_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.ToDateTime文章以供将来参考。

于 2013-03-25T09:48:55.097 回答