提问者:小点点

转换为有效日期时间的最长字符串是多少?


我正在编写一个数据解析器,并试图计算出一个字段是否是数字,日期,字符串等。

NETDateTime.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;
}

仍然表示可解析日期时间的最长字符串是多少?

(例如,“星期三,9月30日2020年12:34:56”很长,但我敢打赌还有更长的例子!)

以下几点:

  • 我不是在寻找用空白或类似的东西填充日期的狡猾答案。
  • 我最初关注的是英语枣子,但如果其他文化可以举出更长的例子,我会感兴趣的。

共1个答案

匿名用户

仍然表示可解析日期时间的最长字符串是多少?

看一看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

但是这些不同类型的值可以根据日期时间中的信息不同地输出。 仔细查看文档中每个说明符的所有不同的可能输出,以了解我的意思。