java - 忽略java日期比较中的任何空格或换行符

标签 java datetime compare

我正在尝试比较java中的两个日期。虽然以下代码工作正常,但我想处理输入日期的日期格式可能发生一些变化的情况。

例如,在下面的代码中,两个日期的日期格式为 yyyy/mm/dd hh:mm:ss am。但有时在输入日期中发现一些额外的空格/换行符,这会导致异常。

java.text.ParseException: Unparseable date: "02/14/2013
    07:00:00 AM"      

以下是我尝试执行的代码。

        try 
        {
            Date date1 = (Date)DATE_FORMAT_yyyy_mm_dd_hh_mm_ss.parse(slaTime); // usually the data comes as 2013/02/03 09:09:09 AM
            Date date2 = (Date)DATE_FORMAT_yyyy_mm_dd_hh_mm_ss.parse(actualTime);// usually the data comes as 2013/02/03  09:06:09 AM

            // a error occurs
            if(date1.before(date2))
            {
                return "True";
            }
            else
            {
                return "False";
            }
        } 
        catch (ParseException e) 
        {
        e.printStackTrace();

        }

如何处理这个问题?

最佳答案

最简单的解决方案之一是 strip all whitespace from the String解析日期之前的版本。更改日期格式以不包含任何空格 (yyyy/MM/ddhh:mm:ssaaa),并使用它来解析剥离的字符串。

        final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/ddhh:mm:ssaaa");
        final String dateStr = "02/14/2013    07:00:00" +
                                "\n AM";
        Date failingDate = dateFormat.parse(dateStr);
        Date passingDate = dateFormat.parse(dateStr.replaceAll("\\s",""));

关于java - 忽略java日期比较中的任何空格或换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998442/

相关文章:

c++ - 如何为 std::sort() 编写用户定义的比较

c++ - vector 元素和 txt 文件行之间的字符串比较不起作用

java - 在 JPanel 中显示 JList 的图像

java - 一般客户端如何获取Java FX 2运行时?

c++ - 将 time_duration 转换为 DATE

javascript - 使用 moment.js 查找 2 次之间的时间差

haskell - 比较列表中的所有元素 haskell

java - 实现模块化架构/简单的插件系统

java - ClassNotFoundException : org. flywaydb.core.api.callback.FlywayCallback

php 日期格式从 d/m/Y 转换为 date ('D, j M Y H:i:s' )