我很好奇在任何给定语言中处理模糊日期字符串的最佳方法是什么。如果无法预先验证您的用户输入,那么应如何解析MM / dd / YYYY日期?
您如何解析以下模棱两可的日期以及出于何种原因(统计,文化等)?
'1111900'截至1900年1月11日[ M / dd / YYYY ]或1900年11月1日[ MM / d / YYYY ]
答案 0 :(得分:1)
除非您确切知道格式的语言/文化,否则您需要建立一个共同的日期格式。
我建议使用一种称为区域设置中立的日期格式。 (YYYY-MM-DD)
要么使用它,要么明确哪个部分是年,月和日。 (DD MON YYYY或2003年4月22日)
请参阅:the w3's view日期格式。
编辑:错误输入区域设置中立的日期格式
答案 1 :(得分:1)
根据软件的重要程度,我会将任何不明确的日期条目视为无效输入。您应该确保(在源头)您获得的日期输入是合理的,非模糊的格式。如果您仍然设法获得类似“1111900”的内容,那么输入不正确,有人显然已经以某种方式绕过了有效性检查代码,并且您可以做的最正确的事情就是丢弃数据。
当然,如果这不是一个选项,并且获得日期点并不重要,你可以随时猜测 - 但它将猜测。如果可能的话,我肯定会避免这种情况。接受未经过不明确的输入并不是最好的想法。
答案 2 :(得分:0)
了解这种系统中1月11日和11月1日之间差异的唯一方法是通过背景。否则,你需要经历某种消歧。这种特定的日期格式将是病态破坏性压缩的完美例子。
答案 3 :(得分:-1)
我的偏好当重要的日期是使用提供下拉菜单或日历时,它总是以预期的格式出现。