将字符串解析为日历对象
Parsing String into a Calendar object
我无法将仅包含 MONTH 和 DAY 信息的字符串解析为日期对象。通过查看其他线程,我决定使用 SimpleDateFormatter。这是我的代码:
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" 只包含 MONTH 和 DAY 信息。我只需要获取 05/25 并将其转换为日期。我不关心年或时间部分。
使用我当前的代码,DAY 似乎被正确解析,但 MONTH 始终设置为一月。
Thu Jan 01 00:00:00 UTC 1970
Sun Jan 25 00:00:00 UTC 1970
我预计会是
1 月 1 日星期四 00:00:00 UTC 1970
5 月 25 日星期日 00:00:00 UTC 1970
非常感谢一些想法。
我发现我做错了什么。这是 SimpleDateFormatter 中的模式
holidayDate = new SimpleDateFormat("MM/DD").parse(holiday);
应该是:
holidayDate = new SimpleDateFormat("MM/dd").parse(holiday);
DD - 一年中的第几天
dd - 一个月中的一天(这就是我想要的)
因为我所有的约会都在30以内,我相信是在一月份
我无法将仅包含 MONTH 和 DAY 信息的字符串解析为日期对象。通过查看其他线程,我决定使用 SimpleDateFormatter。这是我的代码:
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" 只包含 MONTH 和 DAY 信息。我只需要获取 05/25 并将其转换为日期。我不关心年或时间部分。
使用我当前的代码,DAY 似乎被正确解析,但 MONTH 始终设置为一月。
Thu Jan 01 00:00:00 UTC 1970
Sun Jan 25 00:00:00 UTC 1970
我预计会是 1 月 1 日星期四 00:00:00 UTC 1970 5 月 25 日星期日 00:00:00 UTC 1970
非常感谢一些想法。
我发现我做错了什么。这是 SimpleDateFormatter 中的模式 holidayDate = new SimpleDateFormat("MM/DD").parse(holiday);
应该是: holidayDate = new SimpleDateFormat("MM/dd").parse(holiday);
DD - 一年中的第几天 dd - 一个月中的一天(这就是我想要的) 因为我所有的约会都在30以内,我相信是在一月份