在 VB Net 中将不同的日期字符串解析为一种格式

Parsing different date strings into one format in VBNet

我正在尝试编写一个程序来提取所有已安装 windows 更新的列表并输出最近安装的日期。由于 WMI 查询输出的格式,我遇到了困难。我的代码如下:

        Dim dates = New List(Of String)
        Dim datearray = dates.ToArray()
        Try
        Dim searcher As New ManagementObjectSearcher( _
            "root\CIMV2", _
            "SELECT * FROM Win32_QuickFixEngineering")

        For Each queryObj As ManagementObject In searcher.Get()

        dates.Add((queryObj("InstalledOn")))

        Next
        Dim path As String = "C:\Users\Will\outputfile.txt"
        IO.File.WriteAllLines(path, dates)

我只是写出输出以便检查日期,我遇到的问题是在尝试将数组转换为日期时由于日期不符合要求的格式而抛出异常。例如,输出为:

12/7/2013
12/7/2013
12/7/2013
6/14/2013
10/7/2011
4/7/2011 

使用 datetime.parse.

不符合要求的格式

如何转换数组以使所有日期都采用相同的格式? (请注意,这些日期是 month/day/year,我真的可以将它们设为 day/month/year。

我一直在浏览论坛并尝试找到一些不同的代码片段,但没有任何帮助!

只是一个想法,但是我可以用 WQL 做些什么来只导出最新的更新吗?

提前致谢:)

使用日期时间。ParseExact or DateTime.TryParseExact,您可以指定任何您喜欢的格式:

Dim provider As CultureInfo = CultureInfo.InvariantCulture
Dim result as Date = Date.ParseExact("6/14/2013", "M/d/yyyy", provider)
'result is now equal to a valid date - #6/14/2013 12:00:00 AM#
        Dim dates = New List(Of String)
        Dim datearray = dates.ToArray()
        Try
        Dim searcher As New ManagementObjectSearcher( _
            "root\CIMV2", _
            "SELECT * FROM Win32_QuickFixEngineering")

        For Each queryObj As ManagementObject In searcher.Get()

        dates.Add((queryObj("InstalledOn")))

        Next
        Dim path As String = "C:\Users\Will\outputfile.txt"
        IO.File.WriteAllLines(path, Format(dates, "hh:mm:ss tt")) 'Format(dates, "dd/MM/yyyy")