ISO8601格式化字符串到DateTime

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

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

我想将它转换为C# DateTime对象,但我正在使用的解析方法抛出exception。

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

 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); 

如何让解析函数与我的字符串一起使用?

尝试DateTime time = DateTime.Parse("2016-03-28T16:07:00+0200"); 。 您的字符串似乎是DateTime.Parse() 可识别的格式 。

我建议使用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