代码之家  ›  专栏  ›  技术社区  ›  mirezus

解析不明确的日期(独立于语言)

  •  1
  • mirezus  · 技术社区  · 16 年前

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

    '1111900' 截至1900年1月11日[ 年月日 年月日

    4 回复  |  直到 16 年前
        1
  •  2
  •   Nathan    16 年前

    除非您确切知道格式来自何种语言/文化,否则您需要建立一个通用的日期格式。

    我推荐一种称为区域设置中性日期格式的格式。(YYYY-MM-DD)

    见: the w3's view 关于日期格式。

        2
  •  1
  •   Andrzej Doyle    16 年前

    根据软件的重要性,我会将任何不明确的日期输入视为无效输入。你应该确保(从源头上)你得到的日期输入是合理的、不含糊的格式。如果您仍然设法获得类似“1111900”的信息,那么输入是不正确的,显然有人以某种方式绕过了有效性检查代码,并且您可以做的最正确的事情可能是丢弃数据。

    当然,如果这不是一个选择,而且约会地点也不是很关键,你可以随时猜测——但这是可能的 猜一猜。不过,如果可能的话,我肯定会避免这样做。一般来说,接受未经认可的输入并不是最好的主意。

        3
  •  0
  •   Yes - that Jake.    16 年前

    在这样一个系统中,了解1月11日和11月1日之间差异的唯一方法是通过上下文。否则,您需要进行某种消歧。这种特殊的日期格式将是病理破坏性压缩的完美例子。

        4
  •  -1
  •   UnkwnTech    16 年前