微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 从今年开始的同一天

我需要在今年的同一天.

示例:现在是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 举报,一经查实,本站将立刻删除。

相关推荐