如何使用java检测给定的日期格式

Ram*_*esh 5 java localdate

我有一个方法获取一个字符串并将其更改为特定的日期格式但事情是日期将是任何格式例如

16 July 2012

March 20 2012

2012 March 20
Run Code Online (Sandbox Code Playgroud)

所以我需要检测字符串是以哪种文件格式.

我使用下面的代码来测试它,但如果文件格式发生变化我会得到异常.

private String getUpdatedDate(String updated) {
        Date date;
        String formatedDate = null;
        try {
            date = new SimpleDateFormat("d MMMM yyyy", Locale.ENGLISH)
                    .parse(updated);
            formatedDate = getDateFormat().format(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return formatedDate;
    }
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 6

也许最简单的解决方案是构建一组您可以合理预期的日期格式,然后依次尝试针对每个格式的输入。

您可能想要标记不明确的输入,例如 2012/5/6 是 6 月 5 日还是 5 月 6 日?

  • 我赞成这个,因为这个想法是正确的,但为什么没有一个库呢?这就是我正在寻找的。 (2认同)

RP-*_*RP- 5

BalusC 写了一个简单的DateUtil,适用于许多情况。您可能需要扩展它以满足您的要求。

这是链接:https : //balusc.omnifaces.org/2007/09/dateutil.html

以及你需要寻找的方法 determineDateFormat()