什么是最长的字符串,可以转换为有效的DateTime?

问题描述 投票:0回答:1

我正在编写一个数据分析器,试图找出一个字段是数字、日期、字符串等。

我的.NET DateTime.TryParse 当检查许多记录时,速度慢是可以理解的(因为它检查许多不同的日期格式)。因此,如果可能的话,我想缩短处理时间。最初我可以做的一个简单的检查是查看字符串的长度,如果它超出了一些界限,就拒绝它。

我认为最短的日期应该是6个字符长(例如dMyy),所以我可以做以下检查。

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的最长字符串?

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

有几点。

  • 我并不是要找一些技巧性的答案,比如用白色的空间或类似的东西来填充日期。
  • 我一开始关注的是英文日期,但如果其他文化可以举出更长的例子,我也会很感兴趣。
c# .net datetime data-cleaning date-formatting
1个回答
1
投票

什么是仍然代表可解析的DateTime的最长字符串?

请看一下列表中的 自定义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中的信息,这些不同类型的值可以有不同的输出。 仔细观察文档中每个指定符的所有不同可能的输出,就会明白我的意思。

© www.soinside.com 2019 - 2024. All rights reserved.