在Java中解析格式错误的日期时间字符串

时间:2014-12-04 08:16:46

标签: java android java-ee prettytime

用一句话说:我应该能够解析PrettyTime的“2014年12月4日下午1:58”吗?

描述: 我需要解析&从一些格式错误的日期时间字符串中获取正确的日期格式。例如“2014年12月4日下午1:58”。当我解析这个示例字符串时,我得到:“Thu Dec 04 02:59:33 ALMT 2014”,这是我相信我当前的时间戳。

考虑:如果我只有这种单格式格式,我可以编写我的SimpleDateFormat。但是可以有很多格式化的格式,这些格式化大多数都是格格不入的。

你能不能告诉我,我是否应该期待PrettyTime解析这种格式不正确的字符串?或者,您能指出任何可以在Java中处理这些格式错误的日期字符串的Java库吗?

2 个答案:

答案 0 :(得分:1)

这可能对你有帮助!

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy a hh:mm");
        String dateInString1 = "04 Dec 2014 pm 1:58";

        try {

            Date date = formatter.parse(dateInString1);
            System.out.println(date);
            System.out.println(formatter.format(date));

        } catch (ParseException e) {
            e.printStackTrace();
        }

答案 1 :(得分:0)

显然,经过几天的不同尝试后,我的发现是 PrettyTime 无法做到这一点,尽管它处理相当不错的NLP日期&时间相关的东西。最后我最终得到了各种SimpleDateFormat。不是最好的解决方案而是临时解决方案。如果有人偶然发现这个帖子,请分享您的经验。