在java java.util.Date 已知逝去时间怎么求年月日

简介: 在java java.util.Date 已知逝去时间怎么求年月日

要计算逝去时间的年、月、日,你可以使用Java的java.util.Date类和java.util.Calendar类来实现。下面是一个示例代码:

import java.util.Date;
import java.util.Calendar;

public class DateCalculator {
   

    public static void main(String[] args) {
   
        // 创建一个当前时间和逝去时间的示例
        Date current = new Date(); // 当前时间
        Date past = new Date(2021, 4, 15); // 逝去时间(使用指定的年、月和日)

        // 将Date对象转换为Calendar对象
        Calendar currentCalendar = Calendar.getInstance();
        currentCalendar.setTime(current);
        Calendar pastCalendar = Calendar.getInstance();
        pastCalendar.setTime(past);

        // 计算逝去时间的年、月、日
        int years = currentCalendar.get(Calendar.YEAR) - pastCalendar.get(Calendar.YEAR);
        int months = currentCalendar.get(Calendar.MONTH) - pastCalendar.get(Calendar.MONTH);
        int days = currentCalendar.get(Calendar.DAY_OF_MONTH) - pastCalendar.get(Calendar.DAY_OF_MONTH);

        // 如果月份或日期小于0,需要进行调整
        if (months < 0 || (months == 0 && days < 0)) {
   
            years--;
            months += 12;
            if (days < 0) {
   
                months--;
                days += currentCalendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            }
        }

        // 输出逝去时间的年、月、日
        System.out.println("逝去时间:" + years + "年 " + months + "月 " + days + "日");
    }

}

请注意,java.util.Date类的构造方法已被弃用,建议使用java.util.Calendar类或java.time包中的类来操作日期和时间。

相关文章
|
12月前
|
Java 数据库连接 数据库
解决Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
解决Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
|
存储 安全 架构师
Java开发篇 - 还在为计算2个日期间隔的天数纠结?是时候换掉java.util.Date
即然Date及Calendar在计算时间间隔或者其他场景下都比较麻烦,那么有没有更好的API使用呢?当然是有的,JDK1.8中,就更新了新的日期/时间处理工具类。具体的包在java.time目录下,有兴趣的小伙伴可以打开进行查看。
325 0
|
XML Java 数据库连接
Mybatis提示Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lan
Mybatis提示Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lan
250 0
|
Java 数据库连接 数据格式
解决:Failed to convert value of type 'java.lang.String' to required type 'java.util.Date';的方法
解决:Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; 发生这一错误的主要原因是Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,最终导致了这个错误。
49007 0
|
SQL Java
java基础--java.util.Date类型小结
  首先先来了解一下Date数据类型: .   Date类型通常要和另一个 java.text.SimpleDateFormat类联合使用.    把long-->Date: public Date(long date);  Date类的构造函数可以直接将long数据类型转为Date类型  ...
918 0
|
SQL Java 数据库连接
java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。 java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值。
2742 0