我想设置一个日期格式,这样当我在我的文本文件中阅读并将其转换为 XML 时,日期格式不会出现复杂情况。即,如果我正在阅读具有美国日期格式或英国日期格式的文本文件,我不希望发生任何错误。
我已经编写了将文本文件转换为 XML 文件的代码,并且工作正常。但是,现在我正在努力确保生日格式正确。
老实说,我真的不知道该怎么做。
另外,是否可以通过使用组合框来做到这一点,以便用户选择日期的格式?
为了让您可以试验它的工作方式,我建议您现在创建一个新的 Windows 窗体项目,并在表单上放置一个 ComboBox(将其命名为 cbDateFormat)和一个按钮(将其命名为 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 的格式写入日期,这样它就不会产生歧义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句