将字符串解析为Calendar对象

拉胡尔

我在将仅包含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始终设置为1月。

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 = new SimpleDateFormat(“ MM / DD”)。parse(holiday);中的模式

应该是:holidayDate = new SimpleDateFormat(“ MM / dd”)。parse(holiday);

DD-一年中的dd-一个月中的一天(这就是我想要的)由于我所有的日期都在30天以内,所以我相信它已经进入1月

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章