【问题标题】:System.DateTime.ParseExact : unrecognized format stringSystem.DateTime.ParseExact : 无法识别的格式字符串
【发布时间】:2014-01-10 03:01:29
【问题描述】:
var timestamp = DateTime.ParseExact("20140101T000000Z", "YYYYMMDDThhmmssZ", CultureInfo.InvariantCulture);

System.FormatException was unhandled by user code
  HResult=-2146233033
  Message=String was not recognized as a valid DateTime.
  Source=mscorlib

这对我来说毫无意义,因为 YYYYMMDDThhmmssZ 是 ISO-8601 YYYY-MM-DDThh:mm:ssZ 删除了特殊格式字符。

【问题讨论】:

标签: c# .net datetime timestamp iso8601


【解决方案1】:

问题在于YYYY 和DD 不是有效的格式说明符。请改用yyyy 和dd,如果要使用24 小时制,请使用HH:

var timestamp = DateTime.ParseExact("20140101T000000Z", "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture);

另请注意,此处的 Z 被解释为文字 Z 字符。它不能替代时区说明符z。

进一步阅读

【讨论】:

    【解决方案2】:

    您的日期格式不正确。

    YYYY 应该是 yyyy 和 DD 应该是 dd

    以下完整格式应该可以使用

    yyyyMMddTHHmmssZ

    比如

    var timestamp = DateTime.ParseExact("20140101T000000Z", "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture);
    

    MSDN 自定义格式:http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      相关资源
      最近更新 更多