验证日期时间格式
本文关键字:格式 时间 日期 验证 | 更新日期: 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
。