DateTime.ParseExact字符串格式不断抛出错误

时间:2011-05-25 16:47:58

标签: .net datetime

我有一个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。这似乎应该是非常直接的,但似乎无法让它发挥作用。

1 个答案:

答案 0 :(得分:6)

使用HH代替hh 24小时格式。这应该有效:

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

肯定你想要使用当前的文化而不是不变的文化吗?