我需要在今年的同一天.
示例:现在是2019年,变量包含值2022年7月15日,所以我需要在2019年7月15日到达.它适用于所有日期,除了2月份,它在一年中有额外的一天,今年没有这一天,例如:2020年2月29日将在第二天返回我:2019年3月1日,但在这种情况下我需要返回前一天:2019年2月28日.我如何调整逻辑以使其以这种方式工作?
public static java.util.Date getThisDateInThisYear(java.util.Date date) { GregorianCalendar gc = new GregorianCalendar(); gc.setTime(date); Date today = new Date(); GregorianCalendar gcToday = new GregorianCalendar(); gcToday.setTime(today); gc.set(GregorianCalendar.YEAR,gcToday.get(GregorianCalendar.YEAR)); return gc.getTime(); }
解决方法
首先计算年份的差异并将结果添加到日期
public Date getThisDateInThisYear(Date date) { Calendar c = Calendar.getInstance(); int thisYear = c.get(Calendar.YEAR) c.setTime(date); int diff = thisYear - c.get(Calendar.YEAR); c.add(Calendar.YEAR,diff); return c.getTime(); }
我测试了2016-02-29和2020-02-29,两者都返回2019-02-28.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。