DateTime.ParseExact() - DateTime模式'y'使用不同的值出现多次

时间:2015-09-08 21:39:33

标签: c# datetime

我花了一天的时间试图让DateTime.ParseExact()根据Parse string to DateTime in C#上正确回答的问题开始工作,但我无法得到答案。

这是我的代码:

string testDateRaw = @"2014-05-21 10:08:15.965";
string format = "yyyy-MM-dd H:mm:ss.yyy";
DateTime testDate = DateTime.ParseExact(testDateRaw, format, CultureInfo.InvariantCulture);
System.Console.WriteLine(testDate); 

错误:

  

DateTime模式'y'以不同的值出现多次。

注意:此帖子的原始版本中报告的错误未显示在此示例中,但可能相关:

  

“将字符串转换为DateTime时,在将每个变量放入DateTime对象之前解析字符串。”

3 个答案:

答案 0 :(得分:4)

您的格式应为yyyy-MM-dd HH:mm:ss.fff

string testDateRaw = @"2014-05-21 10:08:15.965";
string format = "yyyy-MM-dd HH:mm:ss.fff";
DateTime testDate = DateTime.ParseExact(testDateRaw, format, CultureInfo.InvariantCulture);
System.Console.WriteLine(testDate);

请参阅:Custom Date and Time Format Strings

答案 1 :(得分:4)

我使用该代码得到的错误如下:

  

DateTime模式'y'以不同的值出现多次。

这是不言自明的。查看the docs,您需要在此处使用.fff

"yyyy-MM-dd H:mm:ss.fff"

yyy是:年份,至少有三位数,但由于您的模式中已经有yyyy,因此会出现重复的说明符错误。

答案 2 :(得分:1)

你的格式错了,你用了两次。

string testDateRaw = @"2014-05-21 10:08:15.965";
string format = "yyyy-MM-dd H:mm:ss.fff";
DateTime testDate = DateTime.ParseExact(testDateRaw, format, CultureInfo.InvariantCulture);
System.Console.WriteLine(testDate);