.net:如何用这种格式解析日期:2011年2月8日06:46

时间:2011-03-16 19:47:30

标签: .net datetime

如何使用DateTime.Parse以下列格式解析日期时间:

08 Feb 2011 06:46

为了回应我迄今收到的答案,我尝试了以下内容:

item.ServerDate = DateTime.ParseExact
                ("08 Feb 2011 06:46", "dd MMM yyyy hh:mm", System.Globalization.CultureInfo.InvariantCulture);

我仍然得到异常:String未被识别为有效的DateTime。

更新:以下代码无法使用小时和分钟:

DateTime.ParseExact("08 Feb 2011","dd MMM yyyy",null)

3 个答案:

答案 0 :(得分:6)

<击>

<击>
DateTime.ParseExact("08 Feb 2011 06:46", "dd MMM yyyy hh:mm", 
    System.Globalization.CultureInfo.InvariantCulture);

<击>

在您的问题的示例代码中,您忘记了将所有月份“M”全部资本化。

修改

正如安东指出的那样,“H”也需要资本化以利用军事时间。

DateTime.ParseExact("08 Feb 2011 13:46", "dd MMM yyyy HH:mm", 
    System.Globalization.CultureInfo.InvariantCulture)

以上代码适合我。当我们指定文化时,我无法想象为什么你会在相同的代码上得到错误。你能仔细检查你的代码和输入吗?

答案 1 :(得分:2)

DateTime.ParseExact可能适合您:http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

答案 2 :(得分:0)

来自文档:

"hh": The hour, using a 12-hour clock from 01 to 12.
"HH": The hour, using a 24-hour clock from 00 to 23.

  

在.NET Framework 4中   ParseExact方法抛出一个   如果字符串是FormatException   解析包含一个小时组件和   不在的AM / PM指示符   协议。在.NET Framework 3.5中   和早期版本,AM / PM   指示符被忽略。

因此,请尝试在格式说明符中将"hh"替换为"HH",即尝试"dd MMM yyyy HH:mm"