在vb.net中管理不同的日期格式



我正在努力找出如何最好地处理我可能作为输入的不同日期格式。具体情况是关于日期dd/MM/yyyy和MM/dd/yyyy。

当时我尝试将日期转换如下:

firstDate=CDate("10/22/1988"(

它显然返回了一个错误,我如何以通用的方式处理这两种情况?

您可以将Date.TryParseExact与允许的格式模式一起使用:

Dim patterns As String() = {"dd/MM/yyyy", "MM/dd/yyyy"}
Dim dt As Date
Dim valid = Date.TryParseExact(str, patterns, CultureInfo.InvariantCulture, DateTimeStyles.None, dt)

这里有一个完整的工作演示:

Sub Main
Dim inputs As String() = {"10/22/1988", "22/10/1988"}
Dim patterns As String() = {"dd/MM/yyyy", "MM/dd/yyyy"}

For Each str As String In inputs
Dim dt As Date
Dim valid = Date.TryParseExact(str, patterns, CultureInfo.InvariantCulture, DateTimeStyles.None, dt)
Console.WriteLine($"Valid: {valid} Date-Value: {dt}")
Next
End Sub

输出(我在德国(:

Valid: True Date-Value: 22.10.1988 00:00:00
Valid: True Date-Value: 22.10.1988 00:00:00

在输入类似"0"的情况下;1988年3月5日";您还应该允许:

"M/d/yyyy", "d/M/yyyy"

在这种情况下,顺序也是优先级,所以如果两者都能起作用,第一个获胜。

相关内容

  • 没有找到相关文章

最新更新