我有一个DateTime的字符串表示形式,如下所示:

2011-05-25T16:42:17.156Z

我已经尝试了以下方法,但没有任何运气:
DateTime.ParseExact(formatted, "yyyy-MM-ddThh:mm:ss.fffZ", CultureInfo.CurrentCulture);
DateTime.ParseExact(formatted, "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.CurrentCulture);
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal);
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.None);

所有这些都会产生错误:
String was not recognized as a valid DateTime.

标准DateTime.Parse似乎可以工作,但是出于性能方面的原因,我们正在研究ParseExact。这似乎应该很简单,但似乎无法使其正常工作。

最佳答案

对于24小时格式,请使用HH代替hh。这应该工作:

DateTime.ParseExact(formatted, "yyyy-MM-ddTHH:mm:ss.fffZ",
                    CultureInfo.CurrentCulture);

您确定要使用当前文化而不是不变文化吗?

07-28 06:32