6

我正在尝试解析以下英国格式DateTime字符串:24/01/2013 22:00

但是,我不断收到此错误:

字符串未被识别为有效的日期时间。

CultureInfo.CurrentCulture返回en-GB正确的“”

这是我的代码

    [TestMethod]
    public void TestDateTimeParse()
    {
        DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "d/M/yyyy hh:mm", CultureInfo.CurrentCulture);

        int hours = tester.Hour;
        int minutes = tester.Minute;

        Assert.IsTrue(true);
    }
4

3 回答 3

19

hh是 12 小时制。你应该HH改用。

DateTime.ParseExact("24/01/2013 22:00", 
                    "d/M/yyyy HH:mm", // <-- here
                    CultureInfo.CurrentCulture)
于 2013-01-22T12:37:04.907 回答
5

"hh"表示小时,使用从 01 到 12 的 12 小时制

"HH"表示小时,使用从 00 到 23 的 24 小时制

试试这样;

public static void Main(string[] args)
{
    DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
}

这是一个DEMO.

您也可以Custom Date and Time Format Strings从 MSDN 查看。

于 2013-01-22T12:37:50.073 回答
1

你的格式不对,试试这个:

DateTime tester = DateTime.ParseExact("24/01/2013 22:00", "dd/MM/yyyy HH:mm", CultureInfo.CurrentCulture);
于 2013-01-22T12:34:22.793 回答