C#从字符串中解析DateTime(自定义格式)

本文关键字:自定义 格式 DateTime 字符串 | 更新日期: 2023-09-27 18:20:47

我有这个DateTime作为字符串:2015-08-21T10:51:25.9495986+02:00

如何将此字符串日期解析为DateTime对象?

我通常这样做:

CultureInfo provider = CultureInfo.InvariantCulture;   
DateTime _date;
DateTime.TryParseExact("2015-05-12T12:00:00", "yyyy-MM-ddTHH:mm:ss", provider, DateTimeStyles.None, out _date))

但现在DateTime的末尾包含+02:00。从来没有面对过这种格式,我相信这与时间区域有关,对吧?

C#从字符串中解析DateTime(自定义格式)

您可以简单地使用格式的o说明符

DateTime.TryParseExact("2015-08-21T10:51:25.9495986+02:00", "o", provider, DateTimeStyles.None, out _date);

这将为您提供一个本地时间,要转换为通用时间,您可以使用.ToUniversalTime()

您的答案在这里:C#字符串到带有时区的DateTime

但为了提供帮助:"您应该尝试使用DateTimeOffset而不是DateTime"

参见以下示例:

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture);