将字符串日期解析为不同格式的最佳方法是什么?

时间:2015-04-09 12:22:00

标签: java

我收到的文本文件的日期格式不同,但是当我们验证这些文件时,我们需要将其转换为标准格式,例如" yyyy-MM-dd' H&H:mm:ss& #34;

是否有一种通用的方法来识别日期在txt文件中的格式,然后解析它?

4 个答案:

答案 0 :(得分:2)

没有标准方法来解析文本并找到日期的原始模式。 请考虑以下字符串

010203

它可以是以下任何有效格式(以及其他格式):

ddMMyy
yyMMdd
MMddyy

因此,对于这种情况,无法找到正确的格式。通常,您需要知道要从字符串转换为日期的模式。

答案 1 :(得分:0)

我认为您可以使用正则表达式查找日期格式,然后将其转换为标准格式。它将在

中讨论

Parse any date in Java

答案 2 :(得分:0)

你应该使用配置文件,或者如果每个文件都有其他格式,你需要在开头配置(比如ResourcesBundle):

格式= YYYY-MM-DD

您应该使用SimpleDateFormat来解析它。

答案 3 :(得分:0)

日期很难,正如Kayaman写的那样,并不总是可以解析!

我个人至少在20年前切换到ISO标准(YYYY-MM-DD),但是如果你必须处理大量的传入文件,你可以做的最好的事情就是设置很多模糊测试来检测最多可能的格式。

DD / MM / YY与MM / DD / YY对比YY / MM / DD只是最常见的问题,在这里您必须查看文件中的所有日期,看看是否可以找到排除一个日期的样本或者更多的替代方案。

即。 "如果一个字段大于12,则它不能是几个月,如果大于31,那么它必须是一年的值"。

无论如何,必须以特定于应用程序的方式处理两位数年份值:您在何处放置枢轴值以决定适当的世纪

宣传整个输入并尝试不同的替代方案,以便决定最有可能赢得流媒体流程的工作,对于某些输入,您永远不会绝对肯定。