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

时间:2016-01-17 13:50:11

标签: vb.net wql

我正在尝试编写一个程序,该程序将提取所有已安装的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所需的格式。

如何转换数组以使所有日期都在同一格式内? (请注意,这些日期是月/日/年,我真的可以用日/月/年。

我一直在阅读论坛并尝试了一些我发现的不同代码,但没有任何帮助!

只是想一想,但是我可以用WQL来做一些只能导出最新更新的内容吗?

提前致谢:)

2 个答案:

答案 0 :(得分:2)

使用DateTime。ParseExact或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#

答案 1 :(得分:0)

-ipo