Java DateUtils打印错误的日期

时间:2016-03-03 13:19:06

标签: java date simpledateformat

我正在使用java DateUtils

public boolean checkDate(String dateInString, String format){
    try {
        Date date = new SimpleDateFormat(format).parse(dateInString);
        system.out.print(date);
        if (DateUtils.isToday(date)) {
           return true;            
        }
    } catch (ParseException e) {
        return false;
    }
    return false;
}

有了这个参数:

//needs to be true - today's date
boolean boola = checkDate("03/03/2016", "dd/mm/yyyy");
//needs to be true as well - today's date
boolean boolb = checkDate("03/03/2016", "DD/MM/YYYY");
system.out.print(boola); // prints false
system.out.print(boolb); // prints false

这是控制台日志:

sun dec 27 00:00:00 IST 2015 //2015?
sun jan 03 00:03:00 IST 2016 // 03 03 are for dd/mm, DD/MM why they appear in the wrong place?
false
false

我不知道导致此错误的原因,我正在使用此功能来比较日期。

3 个答案:

答案 0 :(得分:3)

你在格式字符串上犯了一个错误:

  • dd:是一个月中的某一天
  • MM:是一年中的月份
  • yyyy:是年份
  • mm:是小时的分钟数
  • YYYY:是周年

请参阅documentation

答案 1 :(得分:2)

请参阅documentation并检查字符串。

D日的年数189 d第10天的日期 M月份七月份; 7月; 07
m分钟30分钟 y 1996年; 96个
Y周年份2009年; 09

从技术上讲,你的字符串都错了,我相信你想要dd/MM/yyyy

答案 2 :(得分:-2)

使用日历检查:

日历c = Calendar.getInstance();

今天的日期= c.getTime();