C# C从字符串解析日期时间(自定义格式)
我将此日期时间作为字符串:2015-08-21T10:51:25.9495986+02:00 如何将此字符串date解析为DateTime对象 我通常这样做:C# C从字符串解析日期时间(自定义格式),c#,datetime,C#,Datetime,我将此日期时间作为字符串:2015-08-21T10:51:25.9495986+02:00 如何将此字符串date解析为DateTime对象 我通常这样做: CultureInfo provider = CultureInfo.InvariantCulture; DateTime _date; DateTime.TryParseExact("2015-05-12T12:00:00", "yyyy-MM-ddTHH:mm:ss", provider, DateTimeStyles.No
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime _date;
DateTime.TryParseExact("2015-05-12T12:00:00", "yyyy-MM-ddTHH:mm:ss", provider, DateTimeStyles.None, out _date))
但是现在日期时间的末尾包含+02:00。从未遇到过这种格式,我相信这与时间区域有关,对吗?您的答案如下:
但为了帮助:
您应该尝试使用DateTimeOffset而不是DateTime
请参见以下示例:
DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture);
您可以简单地对格式使用o说明符
DateTime.TryParseExact("2015-08-21T10:51:25.9495986+02:00", "o", provider, DateTimeStyles.None, out _date);
这将为您提供一个本地时间,以转换为您可以使用的通用时间。ToUniversalTime如果您发现dup,您应该对其进行评论,当您有更多代表时,您可以投票作为dup关闭。无需在回答中说明。谢谢@juharr,我会看看我是否有足够的代表来做这件事。你需要3000票才能结束。IMHO解析到DateTime在这里不合适。因为它可能在不同的时区机器中产生不同的结果。例如我现在是UTC+3,您的代码在我的机器上生成21.08.2015 11:51:25,但在Ideone中为21.08.2015 08:51:25。这就是为什么在这种情况下解析DateTimeOffset可能是一种更好的方法。@SonerGönül我认为你可能是对的,尽管OP询问如何解析到DateTime。