日期解析器为所有格式

问题描述:

我有日期格式是这样,我想分析 -日期解析器为所有格式

2011 09月02日15:57

周五,2011年9月2日上午09时51

Mittwoch 10. 2011年8月16时31分

woensdag 10奥古斯2011 14:09

星期三7月27日20时23分18秒2011 -0000(UTC)

我们可以有任何解析器可以做到这一点也考虑到语言的差异?

问候 NEHA

+0

这些值来自哪里?从最终用户提供的输入?为什么你不能只问终端用户一个固定的输入格式,并根据最终用户自己的语言环境来验证它? – BalusC

+0

这些是解析的一些文件的一部分,我们需要得到日期 – Neeha

+0

它是什么类型的文件?它有一个固定的(官方指定的)格式吗?如果是这样,那么只需阅读指南的规格。如果没有,你需要先处理。否则,最好的办法是自己收集所有可能的格式和区域设置,并尝试在循环中解析,直到没有抛出“ParseException”为止。 – BalusC

定义一个通用的日期解析器是不可能的,因为日期格式歧义。例如:

12/11/2011 

...暗示2011年11月12日使用英国约会,但2011年12月11日使用美国约定。

你可以采取一种方法,你可以定义一个ListSimpleDateFormat类,每个类都指定一个日期模式并尝试按照该顺序解析日期。不过,我个人不会推荐它,因为它会导致任何最终用户(假设有任何)和/或难以跟踪的数据相关错误的直觉行为。最好定义明确的日期格式或依赖系统区域设置(取决于您的问题域)。