字符串转换为DateTime

时间:2014-10-28 10:49:01

标签: c#-4.0

我在将字符串转换为DateTime时遇到问题。它给了我“字符串未被识别为有效的日期时间”异常。

这是我的输入字符串

10/28/2014 3:13:12 AM"

代码段

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "dd-MMM-yyyy HH:mm", CultureInfo.InvariantCulture);

我已经完成了几个堆栈溢出帖子,但仍有同样的问题。

参考文章 String was not recognized as a valid DateTime in C# asp.net

2 个答案:

答案 0 :(得分:0)

使用此格式字符串:"MM/dd/yyyy h:mm:ss tt"

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

如果您想将生成的DateTime转换回使用此格式的广告:dd-MMM-yyyy HH:mm

string result = dt.ToString("dd-MMM-yyyy HH:mm", CultureInfo.InvariantCulture);

CultureInfo.InvariantCulture强制使用英文月份名称而不是本地化名称。

答案 1 :(得分:0)

您缺少秒数(ss)和AM / PM指定(tt)。有关各种名称以及在此次转化中如何解释这些名称,请参阅http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

如果没有这些,它就不知道如何解释你传递的额外数据。

这会为dt分配值10/28/2014 3:13:12 AM