我需要将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");
答案 0 :(得分:1)
您使用的是哪种框架?
ToUniversalTime()不是正确的选择吗?
DateTime universalFormatDateTime = Convert.ToDateTime(dateTime).ToUniversalTime()
答案 1 :(得分:0)
您应该指定日期时间的DateTimeKind。在执行验证之前添加它:
universalFormatDateTime = DateTime
.SpecifyKind(universalFormatDateTime,DateTimeKind.Local);
答案 2 :(得分: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 articke以供将来参考。