我有一段代码可以解析和验证用户输入:
DateTime myDateTime = DateTime.Parse(userInput,currentCulture);
当前文化正在设置(为 en-ca 或 fr-ca),用户输入始终采用 ISO 8601 格式“yyyy-MM-dd”。
如果用户输入 1900-01-01,则按预期创建日期。 如果输入是“1900-01+01”,则创建的日期时间是 1899-12-31 6:00:00 PM 没有抛出异常,DateTime.Parse 很乐意将其转换为错误的日期。
为了完成这项工作,我正在使用DateTime.ParseExact(userInput,"yyyy-MM-dd",currentCulture)
.
所以我的问题不是如何使这项工作(我有),而是 +01 或任何 + 值是怎么回事?我在 ISO 标准中遗漏了什么吗?