System.DateTime.ParseExact:无法识别的格式字符串

Bal*_*tar 2 .net c# datetime timestamp iso8601

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
Run Code Online (Sandbox Code Playgroud)

这对我来说没有任何意义,因为YYYYMMDDThhmmssZISO-8601 YYYY-MM-DDThh:mm:ssZ删除了特殊格式字符.

p.s*_*w.g 5

问题是,YYYY并且DD不是有效的格式说明符.使用yyyydd替代的,如果你想使用24小时时间,使用HH:

var timestamp = DateTime.ParseExact("20140101T000000Z", "yyyyMMddTHHmmssZ", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

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

进一步阅读