我正在尝试找到适当的格式字符串来解析(精确)以下类型的日期:
1-01-01T00:00:00+00:00
- 0001 年 1 月 1 日2011-12-14T15:53:40+00:00
- 2011 年 12 月 14 日
所以年份长度似乎是可变的(1-4 个字符)。
我目前用来精确解析的格式字符串是:
c_DateTimeFormatString = "yyyy-MM-ddTHH':'mm':'sszzz"
显然这只匹配第二个字符串。今天第一个出现了。现在我们也必须匹配它。
是否有格式字符串来实现这一点?
更新#1
我在输入日期字符串之后以明文形式添加了实际日期。
UPDATE #2
Parse exact 有一个重载,允许传入多个格式字符串。这似乎是正确的方法。
所以第一次尝试是使用:
DateTime.ParseExact("1-01-01T00:00:00+00:00 ", new[] { "yyyy-MM-ddTHH':'mm':'sszzz", "yyy-MM-ddTHH':'mm':'sszzz", "yy-MM-ddTHH':'mm':'sszzz", "y-MM-ddTHH':'mm':'sszzz" }, CultureInfo.CreateSpecificCulture("en-US"), DateTimeStyles.AssumeLocal)
但遗憾的是,这并没有给出正确的结果,第一个日期字符串被解析为:
01.01.2001
而不是
01.01.0001
所以现在的问题是什么是正确的解析字符串来解析仅用一位数字表示的第一年?