解析模糊日期(语言无关)

时间:2009-01-14 22:37:49

标签: datetime parsing date text-parsing

我很好奇在任何给定语言中处理模糊日期字符串的最佳方法是什么。如果无法预先验证您的用户输入,那么应如何解析MM / dd / YYYY日期?

您如何解析以下模棱两可的日期以及出于何种原因(统计,文化等)?

'1111900'截至1900年1月11日[ M / dd / YYYY ]或1900年11月1日[ MM / d / YYYY ]

4 个答案:

答案 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)

我的偏好当重要的日期是使用提供下拉菜单或日历时,它总是以预期的格式出现。