ISO8601 格式的字符串到 DateTime

ISO8601 formatted string to DateTime

我有以下 ISO8601 格式的日期时间字符串:

2016-03-28T16:07:00+0200

我想将其转换为 C# DateTime 对象,但我使用的解析方法抛出异常。

目前我有这个:(不起作用)

string format = "yyyy-MM-ddTHH:mm:ss+zzzz";
CultureInfo provider = CultureInfo.InvariantCulture;

// Throws the exception: "String was not recognized as a valid DateTime."
DateTime time = DateTime.ParseExact("2016-03-28T16:07:00+0200", format, provider);

如何让解析函数处理我的字符串?

我建议使用 DateTimeOffset 而不是 DateTime。

var dateString = "2016-03-28T16:07:00+0200";
var date = DateTimeOffset.Parse (dateString);

Console.WriteLine (date.ToString ());

如果要转换为DateTime对象

date.UtcDateTime;

它将发出:

3/28/2016 4:07:00 PM +02:00

尝试DateTime time = DateTime.Parse("2016-03-28T16:07:00+0200");。您的字符串似乎是 format that will be recognized by DateTime.Parse().