gpt4 book ai didi

.net - DateTime:要求用户输入时间组件

转载 作者:行者123 更新时间:2023-12-04 06:54:50 25 4
gpt4 key购买 nike

检查用户输入是有效日期还是有效的“日期 + 时间”很容易:.NET 提供 DateTime.TryParse (此外,VB.NET 提供了 IsDate )。

现在,我想检查用户是否输入了包含时间组件的日期。因此,当使用德语语言环境时,31.12.2010 00:00应该没问题,但是 31.12.2010不应该。

我知道我可以使用 DateTime.TryParseExact像这样:

Dim formats() As String = {"d.M.yyyy H:mm:ss", "dd.M.yyyy H:mm:ss", _
"d.MM.yyyy H:mm:ss", "d.MM.yyyy H:mm:ss", _
"d.M.yyyy H:mm", ...}
Dim result = DateTime.TryParseExact(userInput, formats, _
Globalization.CultureInfo.CurrentCulture, ..., result)

但随后我会硬编码指定日期的德语格式(日点月点年),这被认为是不好的做法,如果我们想要本地化我们的应用程序,就会遇到麻烦。另外, formats将是所有可能组合的相当大列表(一位数字,两位数字,......)。

有没有更优雅的解决方案?

最佳答案

我不确定这是否比您已有的更优雅,但是如何:

  • 按空格拆分修剪后的输入
  • 做一个 TimeSpan.TryParse最后一块
  • 如果成功,请检查结果 TimeSpan 的值是非负的,并且不到一天

  • 除了 DateTime.TryParse 之外,请执行所有其他操作在整个字符串上,您应该更有信心指定了一个时间组件。

    关于.net - DateTime:要求用户输入时间组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681719/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com