【问题标题】:Validating a date format string in c#在 C# 中验证日期格式字符串
【发布时间】:2016-12-02 04:22:17
【问题描述】:

我希望用户能够在文本框中输入日期格式字符串,以便他们可以指定他们希望日期值如何在他们的 Windows 窗体中显示

如何验证在文本框中输入的日期格式字符串,以便他们只能输入有效的 C# 日期格式

【问题讨论】:

  • 给出组合中的所有有效格式。方便用户和你们俩
  • 你可以使用正则表达式
  • @Mohit Shrivastava 我试过了..但它似乎是一个很长的列表
  • @kashi_rock 你能解释一下吗
  • 您将从Here 获得所有可能的日期时间格式,并将这些值填充到我的朋友 Mohit 建议的 ComboBox 中。以便您的用户可以从该列表中选择一种格式

标签: c# winforms date-format


【解决方案1】:

对于有效日期,您需要日期 (dd)、月份 (mm) 和年份 (yyyy)。我可以给你一个简单的正则表达式,用于验证日期,如 dd/mm/yydd.mm/yyyy

(dd|mm|yy{2,4}?).(dd|mm||yy{2,4}?).(dd|mm||yy{2,4}?)

它通过 dd,mm 和 yyyy 或 yy 的任意组合。

它也接受dd.dd.mm 或类似的东西。因此,请务必检查是否出现多次字符。

【讨论】:

    【解决方案2】:

    您可以使用DateTime.TryParse检查输入的日期时间字符串是否有效。

    代码如下:

    DateTime dt;
    string myDate = "2016-12-10";
    bool success = DateTime.TryParse(myDate, out dt);
    Console.WriteLine(success);
    
    Console.WriteLine(DateTime.TryParse("2016-12-10", out dt));    //true
    Console.WriteLine(DateTime.TryParse("10-12-2016", out dt));    //true
    Console.WriteLine(DateTime.TryParse("2016 July, 01", out dt));    //true
    Console.WriteLine(DateTime.TryParse("July 2016 99", out dt));    //true
    

    【讨论】:

    • 这解决了验证用户提供的日期而不是用户提供的日期格式的问题。
    猜你喜欢
    • 2013-05-28
    • 2021-01-21
    • 2018-06-26
    • 2017-11-19
    • 1970-01-01
    • 2014-04-26
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多