【发布时间】:2021-03-10 21:53:06
【问题描述】:
有没有办法在 Visual Basic 中以编程方式查找字符串的日期/时间格式?
我的例子来自工作。我正在使用自定义网页来比较 Excel 电子表格上的表格。我对每张表上记录的比较是基于社会保障和出生日期的最后四位数字,但是目前两个电子表格上的出生日期格式必须相同才能正常运行。用户想在我们更新此项目的报告之前尽早进行比较,我告诉她在她运行网页之前确保生日列的日期时间格式相同。她没有。
我有两个选择,对电子表格中当前存在的日期时间格式进行硬编码,或者找到一种方法使格式无关紧要。我认为后者会更有趣。
我知道有一个 Date.ParseExact 方法,但这要求您已经知道字符串的格式。
为了让您更好地了解我想做什么:
Dim Birthday1 As String = "04/15/1998 13:00:00"
Dim Birthday2 As String = "04/15/1998 1:00 PM"
'//Converts to Date in format "M/d/yyyy"
Dim dateBirthday1 As Date = ConvertFromAnyDateFormat(Birthday1)
Dim dateBirthday2 As Date = ConvertFromAnyDateFormat(Birthday2)
If dateBirthday1 = dateBirthday2 Then
'//Do comparison operations or whatever
End If
【问题讨论】:
-
还有比这两种格式更多的吗?
-
在这两种情况下都是
en-US格式,因此您可以使用DateTime.TryParse(),将CultureInfo.InvariantCulture作为IFormatProvider 传递。如果日期始终采用该格式,即(月份在日期之前,或者像1998-04-15 13:00:00或1998-04-15T13:00:00或1998-04-15T13:00:00+00:00等)。