Java 将字符串解析为日历对象

Java 将字符串解析为日历对象,java,string,date,simpledateformat,date-formatting,Java,String,Date,Simpledateformat,Date Formatting,我在将只包含月份和日期信息的字符串解析为日期对象时遇到问题。通过查看其他线程,我决定使用SimpleDataFormatter。这是我的密码: void checkDay(Calendar now) { Calendar cal = Calendar.getInstance(now.getTimeZone()); for (String holiday : usHolidayList) { Date holidayDate = null; try

我在将只包含月份和日期信息的字符串解析为日期对象时遇到问题。通过查看其他线程,我决定使用SimpleDataFormatter。这是我的密码:

void checkDay(Calendar now) {
    Calendar cal = Calendar.getInstance(now.getTimeZone());
    for (String holiday : usHolidayList) {
        Date holidayDate = null;
        try {
            holidayDate = new SimpleDateFormat("MM/DD").parse(holiday);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        checkNotNull(holidayDate);
        cal.setTime(holidayDate);
        if (now.get(Calendar.MONTH) == cal.get(Calendar.MONTH) && now.get(Calendar.DAY_OF_MONTH) == cal.get(Calendar.DAY_OF_MONTH)) {
            return true;
        }
    }
    return false;
}
usHolidayList类似于-->“01/01”,05/25“,其中只包含月份和日期信息。我只需要获取05/25并将其转换为日期。我不关心年份或时间组件

使用我当前的代码,似乎可以正确解析日期,但月份始终设置为一月

Thu Jan 01 00:00:00 UTC 1970
Sun Jan 25 00:00:00 UTC 1970
我原以为是这样的 1970年1月1日星期四00:00:00 UTC 1970年5月25日星期日00:00:00 UTC


真的很感谢你的一些想法。

我发现我做错了什么。这是SimpleDateFormatter中的模式 holidayDate=新的SimpleDateFormat(“MM/DD”)。解析(假日)

应该是: holidayDate=新的SimpleDateFormat(“MM/dd”)。解析(假日)

一年中的第二天 dd-一个月中的一天(这是我想要的) 因为我所有的约会时间都在30天以内,所以我相信是在一月份