我想设置一个日期格式,以便当我阅读我的文本文件并将其转换为XML时,日期格式没有任何麻烦。即如果我正在阅读具有美国日期格式或英国日期格式的文本文件,则不要发生任何错误。
我已经编写了将文本文件转换为XML文件的代码,并且工作正常。但是,现在我试图确保生日格式正确。
老实说,我不太确定该怎么做。
此外,是否可以通过使用组合框来执行此操作,以便用户选择日期的格式?
答案 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书写,以使日期无歧义。