我正在尝试解析一个我要解析的字符串。
当我使用var newDt = Convert.ToDateTime("3/6/2019 12:00:00 AM +00:00");
它为我提供了具有不同时区的日期。我会得到3/5/2019 4:00AM
我希望它解析并返回与字符串相同的日期时间。
我尝试过
var newDt = DateTime.ParseExact("3/6/2019 12:00:00 AM +00:00", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
我得到了错误
System.FormatException:'字符串未被识别为有效字符串 日期时间。
如何解析日期"3/6/2019 12:00:00 AM +00:00"
以返回具有3/6/2019 12AM相同值的日期时间
答案 0 :(得分:4)
您的计算机中可能有UTC−08:00 time zone(我假设您的Convert.ToDateTime
代码部分返回3/6/2019 4:00AM
而不是3/5/2019 4:00AM
),这就是为什么用偏移值解析它的原因,您将获得4个小时的附加值。
如果您的字符串包含UTC offset值,最好将其解析为DateTimeOffset
而不是DateTime
。
var newDt = DateTimeOffset.ParseExact("3/6/2019 12:00:00 AM +00:00",
"M/d/yyyy h:mm:ss tt zzz",
CultureInfo.InvariantCulture);
然后您可以使用它的.DateTime
property来获得所需的值。