问题
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