【问题标题】:ignore any white space or new line in java date compare忽略java日期比较中的任何空格或新行
【发布时间】:2013-02-21 09:17:28
【问题描述】:

我正在尝试比较 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();

        }

如何处理?

【问题讨论】:

  • 什么是 DATE_FORMAT_yyyy_mm_dd_hh_mm_ss?你能提供定义吗?只是好奇,你用 mm 来表示 monts 和 minutes 吗?

标签: java datetime compare


【解决方案1】:

最简单的解决方案之一是在解析之前将日期的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",""));

【讨论】:

    【解决方案2】:

    对于一年中的月份,使用 M 而不是 m

    正确的日期格式是yyyy/MM/dd hh:mm:ss aaa。如果有任何额外的空格或换行,那么您必须将其删除,否则它将无法解析您的字符串,您应该与格式完全匹配。

    我建议你删除所有空格和换行符然后解析它。

    你可以在没有空格的地方使用像 -yyyy/MM/ddhh:mm:ssaaa 这样的格式。并用空字符串替换所有空间和新行。

    Date date = new SimpleDateFormat("yyyy/MM/ddhh:mm:ssaaa").parse("2013/02/1407:00:00AM");
    

    你的实际代码可能是 -

    dateString = dateString.replaceAll("\\s","");
    SimpleDateFormat("yyyy/MM/ddhh:mm:ssaaa").parse(dateString);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多