DateTime.ParseExact - 失败

时间:2009-06-12 14:15:53

标签: vb.net datetime

快速提问:我正在尝试将以下格式的日期解析为等效的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参数,但无济于事。

任何指针都会非常感激;这是星期五,我的大脑已经入睡了! :)

谢谢!

2 个答案:

答案 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