Java 将字符串解析为日历对象
我在将只包含月份和日期信息的字符串解析为日期对象时遇到问题。通过查看其他线程,我决定使用SimpleDataFormatter。这是我的密码: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
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天以内,所以我相信是在一月份