Java Date.before working,但Date.after不工作

时间:2015-11-01 05:04:04

标签: java date

我正在编写一个程序来测试日期是否在两个特定日期之间。因此,如果日期在1868年1月25日到1912年7月30日之间,那么它就在明治时代,依此类推。我的测试值是1868年9月8日,我的范围是1868年1月25日和1912年7月30日。所以当我运行程序时,只打印“再见”。

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

        Date meijiStart = sdf.parse("1868-01-25");
        Date meijiEnd = sdf.parse("1912-07-30");
        Date Test = sdf.parse("1868-09-08");

        Date taishoStart = sdf.parse("1912-08-01");
        Date taishoEnd = sdf.parse("1926-12-25");

        Date showaStart = sdf.parse("1926-12-26");
        Date showaEnd = sdf.parse("1989-01-07");

        Date heiseiStart = sdf.parse("1989-01-08");
        Date heiseiEnd = sdf.parse("2015-10-30");


        if (Test.after(meijiStart))
        {

            System.out.println("hi");
        }   

       if (Test.before(meijiEnd))
        {
            System.out.println("bye");
        }
    } catch (ParseException ex)
    {

        ex.printStackTrace();
    }

}

}

2 个答案:

答案 0 :(得分:1)

将格式化程序更改为使用MM两个月的月份。 mm将其设置为分钟:)

dayWithSuffix

答案 1 :(得分:0)

mm适用于分钟。 你应该使用MM; 喜欢:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

参考:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html