Java DateUtils 打印错误的日期

Java DateUtils print the wrong date

我正在使用 java DateUtils class

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

我不知道是什么导致了这个错误,我正在使用这个函数来比较日期。

使用日历检查:

日历 c = Calendar.getInstance();

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

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

  • dd: 是一个月中的第几天
  • MM: 是一年中的月份
  • yyyy: 是年份
  • mm: 是小时中的分钟数
  • YYYY: 是星期年

documentation

请参阅 documentation 并检查您的字符串。

D 年第 189 号
d 月中第 10 天
M 年月 7 月;七月; 07
m 小时数 30
y 年份 1996 年; 96
Y 周年 2009 年; 09

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