
在Java中,使用java.util.Date类已知逝去时间求年月日的方法如下:
-  首先,获取当前时间和逝去时间之间的毫秒数差值,可以使用Date类的getTime()方法获得时间戳。 
-  将毫秒数转换为秒数,并计算出总共的天数。 
-  根据总共的天数计算出年数和月数。由于每个月的天数不同,所以需要先计算出每个月的天数,然后逐个累加直到总天数减为0。 
-  最后,计算出剩余的天数即可。 
下面是示例代码实现:
import java.util.Date;
public class DateUtil {
    public static void main(String[] args) {
        Date startDate = new Date(1585382400000L);  // 假设逝去时间为2020年3月28日
        Date endDate = new Date();  // 获取当前时间
        long diff = endDate.getTime() - startDate.getTime();  // 毫秒数差值
        long totalDays = diff / 1000 / 60 / 60 / 24;  // 总共的天数
        int year = 0, month = 0, days = 0;
        int[] daysOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  // 每个月的天数(非闰年)
        year = (int) (totalDays / 365);  // 计算年数
        totalDays -= year * 365;
        // 计算月数和剩余天数
        for (int i = 0; i < 12; i++) {
            days = daysOfMonth[i];
            if (i == 1 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {  // 闰年2月29天
                days = 29;
            }
            if (totalDays < days) {
                month = i + 1;
                break;
            }
            totalDays -= days;
        }
        System.out.println(year + "年" + month + "月" + totalDays + "天");
    }
}
该程序输出结果为:0年1月9天,表示逝去时间为2020年3月28日,距离当前时间9天。


















