快速提问:我正在尝试将以下格式的日期解析为等效的DateTime数据类型,但由于某种原因,它失败了。
字符串格式为: 28 / May / 2009:17:43:04 +0000
或者: dd / MMM / yyyy:hh:mm:ss zz00
这是我正在使用的代码:
Dim provider As New CultureInfo("en-US")
Dim d As DateTime = DateTime.ParseExact(value, "dd/MMM/yyyy:hh:mm:ss zz00", provider)
但是,这会产生FormatException。
仅供参考:我也尝试将InvariantCulture用于ParseExact的provider参数,但无济于事。
任何指针都会非常感激;这是星期五,我的大脑已经入睡了! :)
谢谢!
答案 0 :(得分:15)
你想要格式字符串中的“HH”(24小时格式)而不是“hh”(12小时格式):
using System;
using System.Globalization;
public class Test
{
static void Main()
{
var provider = new CultureInfo("en-US");
// Doesn't throw
var d = DateTime.ParseExact("28/May/2009:17:43:04 +0000",
"dd/MMM/yyyy:HH:mm:ss zz00",
provider);
}
}
答案 1 :(得分:8)
hh
是12小时制的小时。你想要HH
。