在2019年8月8日下午4:45:19使用DateTime.ParseExact

时间:2019-08-08 21:42:50

标签: string vb.net datetime parsing

我正在尝试在字符串“ Aug 8,2019 4:45:19 PM”上使用DateTime.ParseExact。但是我尝试过的所有方法都收到错误消息“字符串未被识别为有效的DateTime”。

我已经尝试过使用DateTime.Parse,但是它给我带来了不准确的返回时间。

它给了我

08/08/2019 04:45:19 

代替:

08/08/2019 16:45:19 

到目前为止,我的代码是:

Import System.Globalization

Dim dateTimeExample As DateTime = Nothing
Dim format As String = "MMM d, yyyy h:mm:ss tt"
Dim provider = CultureInfo.InvariantCulture
Dim text As String = "Aug 8, 2019 4:45:19 PM"

dateTimeExample = DateTime.ParseExact(text, format, provider)

我想要的输出是DateTime:

08-08-2019 16:45:19

1 个答案:

答案 0 :(得分:0)

@madreflection在评论中提供了正确的答案。我只需要将“ hh”更改为“ HH”。我将用C#发布答案,但是如果您仅查看“ MM / dd / yyyy HH:mm:ss”的格式,就会发现问题所在。

using System;
using System.Globalization;

namespace DateTimeParse
{
    class MainClass
    {
        public static void Main(string[] args)
        {

            DateTime dateTimeExample;
            String format = "MMM d, yyyy h:mm:ss tt";
            CultureInfo provider = CultureInfo.InvariantCulture;
            String text = "Aug 8, 2019 4:45:19 PM";

            dateTimeExample = DateTime.ParseExact(text, format, provider);

            Console.WriteLine(dateTimeExample.ToString("MM/dd/yyyy HH:mm:ss"));
        }
    }
}

输出:

08/08/2019 16:45:19