选择日期格式

时间:2019-02-19 11:34:28

标签: xml vb.net

我想设置一个日期格式,以便当我阅读我的文本文件并将其转换为XML时,日期格式没有任何麻烦。即如果我正在阅读具有美国日期格式或英国日期格式的文本文件,则不要发生任何错误。

我已经编写了将文本文件转换为XML文件的代码,并且工作正常。但是,现在我试图确保生日格式正确。

老实说,我不太确定该怎么做。

此外,是否可以通过使用组合框来执行此操作,以便用户选择日期的格式?

1 个答案:

答案 0 :(得分:0)

为了让您可以尝试它的工作方式,我建议您暂时创建一个新的Windows Forms项目,并在窗体上放一个ComboBox(将其命名为cbDateFormat)和一个Button(将其命名为Button4),然后使用此代码:

Public Class Form1

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim str = "1/4/19" ' test data '

        If cbDateFormat.SelectedIndex = -1 Then
            MsgBox("Please select the date format.")
            Exit Sub
        End If

        Dim dateFormat = ""

        Select Case cbDateFormat.Text
            Case "DD/MM/YYYY"
                dateFormat = "d/M/yyyy"
            Case "MM/DD/YYYY"
                dateFormat = "M/d/yyyy"
            Case "DD/MM/YY"
                dateFormat = "d/M/yy"
            Case "MM/DD/YY"
                dateFormat = "M/d/yy"
            Case Else
                Throw New Exception("Date format not found.")
        End Select

        Dim d As DateTime
        If DateTime.TryParseExact(str, dateFormat, Globalization.CultureInfo.InvariantCulture, Nothing, d) Then
            ' d now holds the datetime '
            MsgBox(d.ToString("dd-MMM-yyyy"))
        End If

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cbDateFormat.Items.AddRange({"DD/MM/YYYY", "MM/DD/YYYY", "DD/MM/YY", "MM/DD/YY"})

    End Sub

End Class

它使用DateTime.TryParseExact来解析具有用户选择的日期格式的字符串。

我故意使用了1/4/19的测试日期,因为它可能是4月1日或1月1日。 19/1/1的测试日期不会有帮助。

然后确保日期以XML格式yyyy-MM-dd书写,以使日期无歧义。