ISO8601 formatted string to DateTime [closed]

喜夏-厌秋 提交于 2019-12-02 21:28:01

问题


I have the following ISO8601 formatted date time string:

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

I want to convert it into a C# DateTime object, but the parsing method I'm using throws an exception.

Currently I have this: (Does not work)

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

How do I get the parse function to work with my string?


回答1:


Try DateTime time = DateTime.Parse("2016-03-28T16:07:00+0200");. Your string seems to be a format that will be recognized by DateTime.Parse().




回答2:


I suggest using DateTimeOffset instead of DateTime.

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

Console.WriteLine (date.ToString ());

If you want to convert to DateTime object

date.UtcDateTime;

It will emit:

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


来源:https://stackoverflow.com/questions/36267183/iso8601-formatted-string-to-datetime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!