日期解析器为所有格式
问题描述:
我有日期格式是这样,我想分析 -日期解析器为所有格式
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
答
定义一个通用的日期解析器是不可能的,因为日期格式歧义。例如:
12/11/2011
...暗示2011年11月12日使用英国约会,但2011年12月11日使用美国约定。
你可以采取一种方法,你可以定义一个List
的SimpleDateFormat
类,每个类都指定一个日期模式并尝试按照该顺序解析日期。不过,我个人不会推荐它,因为它会导致任何最终用户(假设有任何)和/或难以跟踪的数据相关错误的直觉行为。最好定义明确的日期格式或依赖系统区域设置(取决于您的问题域)。
这些值来自哪里?从最终用户提供的输入?为什么你不能只问终端用户一个固定的输入格式,并根据最终用户自己的语言环境来验证它? – BalusC
这些是解析的一些文件的一部分,我们需要得到日期 – Neeha
它是什么类型的文件?它有一个固定的(官方指定的)格式吗?如果是这样,那么只需阅读指南的规格。如果没有,你需要先处理。否则,最好的办法是自己收集所有可能的格式和区域设置,并尝试在循环中解析,直到没有抛出“ParseException”为止。 – BalusC