C# 日期时间更改格式错误

C# 日期时间更改格式错误,c#,datetime,C#,Datetime,所以我得到了这个密码。我想做的是将2014年2月4日凌晨12:00转换为2014-02-04 我得到的错误是: mscorlib.dll中发生“System.FormatException”类型的异常,但未在用户代码中处理 其他信息:字符串未被识别为有效的日期时间 但我不知道怎么了。有什么想法吗?你的格式有几个问题。应该是: var test = DateTime.ParseExact("Feb 4 2014 12:00AM", "MMM dd yyyy HH:

所以我得到了这个密码。我想做的是将2014年2月4日凌晨12:00
转换为
2014-02-04

我得到的错误是:

mscorlib.dll中发生“System.FormatException”类型的异常,但未在用户代码中处理

其他信息:字符串未被识别为有效的日期时间


但我不知道怎么了。有什么想法吗?

你的格式有几个问题。应该是:

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);
"MMM  d yyyy hh:mmtt"
使用:

  • d
    对于日期部分,由于它可以容纳单位和双位日期,您当前的说明符
    dd
    希望单位日期部分以零开始,就像
    04
    一样。Single
    d
    可用于解析两个单位/双位日期
  • 对小时部分使用
    hh
    而不是
    hh
    ,因为字符串中有
    AM
    ,这意味着小时格式是
    12
    hours,而不是
    24
    hours
因此,您的代码应该是:

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);
"MMM  d yyyy hh:mmtt"

你的格式有几个问题。应该是:

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);
"MMM  d yyyy hh:mmtt"
使用:

  • d
    对于日期部分,由于它可以容纳单位和双位日期,您当前的说明符
    dd
    希望单位日期部分以零开始,就像
    04
    一样。Single
    d
    可用于解析两个单位/双位日期
  • 对小时部分使用
    hh
    而不是
    hh
    ,因为字符串中有
    AM
    ,这意味着小时格式是
    12
    hours,而不是
    24
    hours
因此,您的代码应该是:

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);
"MMM  d yyyy hh:mmtt"

谢谢。我也尝试了单曲
d
,但没有想到问题来自
hh
。我读到了相反的东西,认为这是
HH
12
小时,而不是
24
。Thanx buddy:)当日期为此格式时仍会出现异常:
2014年4月17日12:00AM
是否
d
仅管理单个数字天数?最终发现问题。很明显,当你从一个SQL语句中选择一个日期字符串时。它执行以下操作:-如果日数为
4
,它将为您提供'4',而不仅仅是
4
-如果一天是
17
,它会给你一个公正的
17
。我用Replace函数来计算。非常感谢。我也尝试了单曲
d
,但没有想到问题来自
hh
。我读到了相反的东西,认为这是
HH
12
小时,而不是
24
。Thanx buddy:)当日期为此格式时仍会出现异常:
2014年4月17日12:00AM
是否
d
仅管理单个数字天数?最终发现问题。很明显,当你从一个SQL语句中选择一个日期字符串时。它执行以下操作:-如果日数为
4
,它将为您提供'4',而不仅仅是
4
-如果一天是
17
,它会给你一个公正的
17
。我使用Replace函数来计算它。