在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天。