1

我需要解析不包含年份和可能月份组件的 ISO 8601 日期,例如:

--0412T102200Z 

我正在尝试使用以下引发异常的代码'输入中必须至少有一个带有年份的部分日期。':

DateTimeOffset.ParseExact("--0412T102200Z", "'--'MMdd'T'HHmmssZ",
           CultureInfo.InvariantCulture, DateTimeStyles.None);

我如何解析这样的日期?是否有机会在解析之前避免手动将“--”替换为一年?

4

1 回答 1

3

虽然在某些格式(如XML XSD Schemas )中可能允许用年份代替破折号,但这在技术上不是符合 ISO-8601 的值。

问问自己这个值是什么意思——它可能意味着“每年在这个月、一天和时间在 UTC”。换句话说,这是一种重复模式。

.NetDateTimeDateTimeOffset类型不能存储重复模式。它们用于表示特定的日期和时间。

所以不幸的是,没有一年就无法解析这个。您首先需要确定要将模式应用于哪一年,将破折号手动替换为String.Replace然后您可以对其进行解析。

于 2013-12-31T18:00:22.190 回答