我正在编写一个数据解析器,并试图计算出一个字段是否是数字,日期,字符串等。
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”很长,但我敢打赌还有更长的例子!)
以下几点:
仍然表示可解析日期时间的最长字符串是多少?
看一看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
但是这些不同类型的值可以根据日期时间中的信息不同地输出。 仔细查看文档中每个说明符的所有不同的可能输出,以了解我的意思。