可以转换为有效 DateTime 的最长字符串是多少?
What is the longest string that would convert to a valid DateTime?
我正在编写一个数据解析器,并试图确定一个字段是数字、日期、字符串等。
.NET DateTime.TryParse
在检查许多记录时速度很慢(因为它检查许多不同的日期格式),这是可以理解的。因此,如果可能的话,我想简化处理。我最初可以做的一个简单检查是查看字符串的长度,如果它超出某些范围则拒绝它。
我认为我应该合理预期的最短日期是 6 个字符长(例如 d/M/yy)所以我可以进行以下检查:
if (fieldValue.Length < 6)
{
// no datetime is shorter than 6 chars (e.g. d/M/yy is the shotest I can think of)
return false;
}
仍然表示可解析的 DateTime 的最长字符串是什么?
(例如,"Wednesday, 30th September 2020 12:34:56" 很长,但我敢打赌还有更长的例子!)
几点:
- 我不是在寻找用白色 space 或类似内容填充日期的棘手答案。
- 我最初专注于英语约会,但如果其他文化可以提出更长的例子,我会很感兴趣。
What is the longest string that still represents a parse-able
DateTime?
查看 custom format specifiers for a DateTime 的列表,并将所有这些都考虑在内。
例如,这个:
DateTime dt = DateTime.Now;
string strNow = dt.ToString("dddd, MMMM dd, yyyy gg hh:mm:ss.fffffff tt K");
Console.WriteLine(strNow);
给出:
Tuesday, June 16, 2020 A.D. 08:47:02.2667911 AM -06:00
但是这些不同类型的值可以根据 DateTime 中的信息以不同方式输出。仔细查看文档中每个说明符的所有不同可能输出,了解我的意思。
我正在编写一个数据解析器,并试图确定一个字段是数字、日期、字符串等。
.NET DateTime.TryParse
在检查许多记录时速度很慢(因为它检查许多不同的日期格式),这是可以理解的。因此,如果可能的话,我想简化处理。我最初可以做的一个简单检查是查看字符串的长度,如果它超出某些范围则拒绝它。
我认为我应该合理预期的最短日期是 6 个字符长(例如 d/M/yy)所以我可以进行以下检查:
if (fieldValue.Length < 6)
{
// no datetime is shorter than 6 chars (e.g. d/M/yy is the shotest I can think of)
return false;
}
仍然表示可解析的 DateTime 的最长字符串是什么?
(例如,"Wednesday, 30th September 2020 12:34:56" 很长,但我敢打赌还有更长的例子!)
几点:
- 我不是在寻找用白色 space 或类似内容填充日期的棘手答案。
- 我最初专注于英语约会,但如果其他文化可以提出更长的例子,我会很感兴趣。
What is the longest string that still represents a parse-able DateTime?
查看 custom format specifiers for a DateTime 的列表,并将所有这些都考虑在内。
例如,这个:
DateTime dt = DateTime.Now;
string strNow = dt.ToString("dddd, MMMM dd, yyyy gg hh:mm:ss.fffffff tt K");
Console.WriteLine(strNow);
给出:
Tuesday, June 16, 2020 A.D. 08:47:02.2667911 AM -06:00
但是这些不同类型的值可以根据 DateTime 中的信息以不同方式输出。仔细查看文档中每个说明符的所有不同可能输出,了解我的意思。