Parsing ISO 8601 string to DateTime in .NET?

This question already has an answer here:

  • How to create a .NET DateTime from ISO 8601 format 7 answers

  • string txt= "2009-10-08 08:22:02Z";
    DateTime output = DateTime.ParseExact(txt, "u", System.Globalization.CultureInfo.InvariantCulture);
    

    The DateTime class supports the standard format string of u for this format

    I think for the ISO format (with the T separator), use "s" instead of "u". Or use:

    string txt= "2009-10-08 08:22:02Z";
    DateTime output = DateTime.ParseExact(txt, new string[] {"s", "u"}, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
    

    to support both formats.


    No, it's not ISO 8601. Valid ISO 8601 representation would have T between time and date parts.

    DateTime can natively handle valid ISO 8601 formats. However, if you're stuck with this particular representation, you can try DateTime.ParseExact and supply a format string.

    链接地址: http://www.djcxy.com/p/46540.html

    上一篇: 将dateTime转换为ISO格式yyyy

    下一篇: 在.NET中将ISO 8601字符串解析为DateTime?