DateTime更改格式错误

时间:2017-05-17 13:37:48

标签: c# datetime

var test = DateTime.ParseExact("Feb  4 2014 12:00AM", "MMM  dd yyyy HH:mmtt", System.Globalization.CultureInfo.InvariantCulture).ToString("yyy-MM-dd");
System.Diagnostics.Debug.WriteLine(test);

所以我得到了这段代码。我要做的是将Feb 4 2014 12:00AM转换为2014-02-04

我得到的错误就是这个:

  

类型' System.FormatException'的例外情况发生在mscorlib.dll中但未在用户代码中处理

     
    

其他信息:字符串未被识别为有效的DateTime。

  

但我无法找出错误的原因。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您的格式存在一些问题。它应该是:

"MMM  d yyyy hh:mmtt"

使用:

  • 单个d表示日期部分,因为它可以容纳单个和两位数的日期,您当前的说明符dd会希望单个数字日期部分从零开始,如04。单d可用于解析单/双位数日期。
  • 使用hh代替HH小时部分,因为您在字符串中有AM表示您的小时格式为12小时而不是24小时。

所以你的代码应该是:

var test = DateTime.ParseExact("Feb  4 2014 12:00AM", "MMM  d yyyy hh:mmtt", System.Globalization.CultureInfo.InvariantCulture).ToString("yyy-MM-dd");