验证日期时间格式

本文关键字:格式 时间 日期 验证 | 更新日期: 2023-09-27 18:00:16

我正在尝试验证用户可以提供的日期时间格式。这是示例代码...

 DateTime tempDateTime;
 string _userFormat = "aa";
 string tempDateTime2 = DateTime.Now.ToString(_userFormat);
 bool b = DateTime.TryParseExact(tempDateTime2, _userFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out tempDateTime);
 Console.WriteLine("{0},{1}", tempDateTime, b);
 Console.ReadLine();

这将返回 true(值为 b(和有效的日期时间(tempDateTime(。我的印象是这将返回 false,因为_userFormat格式无效。那么还有其他方法还是我错过了什么。

谢谢

验证日期时间格式

由于您使用格式 aa 调用ToString(),这并不表示有效的自定义格式代码,因此它将代码视为字符串文本,并且您aa返回字符串值。

然后,当您尝试使用相同的格式说明符分析"date"时,它会看到源字符串的格式与格式说明符匹配,因此它会正确分析它。 由于源代码和格式代码都没有指定有关数据/时间的任何可行信息,因此使用"默认"值 DateTime.Now.Date

从 MSDN:

如果 format 定义了没有日期元素的时间,并且分析操作成功,则生成的 DateTime 值的日期为 DateTime.Now.Date