java – 从今年开始的同一天
发布时间:2020-12-15 08:28:42 所属栏目:Java 来源:网络整理
导读:我需要在今年的同一天. 示例:现在是2019年,变量包含值2022年7月15日,所以我需要在2019年7月15日到达.它适用于所有日期,除了2月份,它在一年中有额外的一天,今年没有这一天,例如:2020年2月29日将在第二天返回我:2019年3月1日,但在这种情况下我需要返回前一
我需要在今年的同一天.
示例:现在是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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |