您活了多久

来源:互联网 发布:js二维数组声明 编辑:程序博客网 时间:2024/04/28 07:07

环境:jdk8


1.准备知识:获取毫秒数的几种方式

 Instant in1 = Instant.now();

 //获取0时区的相对于1970年的毫秒数
System.out.println("方式1:"+in1.toEpochMilli());
//底层实际还是调用了toEpochMilli();
System.out.println("方式2:"+Clock.systemUTC().millis());
System.out.println("方式3:"+System.currentTimeMillis());
System.out.println("方式4:"+ Calendar.getInstance().getTimeInMillis());

2.例子

//注意:LocalDate没有转换为Instant的方法
// LocalDateTime则有这个方法
@Test
public void testName4()  {
//得到的是相应字段的减法  比如今天是2017年7月18  返回P25Y1M15D
System.out.println(Period.between(LocalDate.of(1992, 6, 3), LocalDate.now()));
//得到总 月数
System.out.println("总月数:"+Period.between(LocalDate.of(1992, 6, 3), LocalDate.now()).toTotalMonths());
//方法1  利用EpochDay
System.out.println("总天数:"+(LocalDate.now().toEpochDay()-LocalDate.of(1992, 6, 3).toEpochDay()));
//方法2  将LocalDateTime转换为Instant 使用Duration计算
Duration dur = Duration.between(LocalDateTime.of(1992, 06, 03,00,00).toInstant(ZoneOffset.UTC), Instant.now());
System.out.println("总天数:"+dur.toDays());
System.out.println("你已经存在了:"+dur.toDays()+"天"+dur.toHours()+"小时"+dur.toMinutes()+"分钟");
}


目前就想到了这2种方法

原创粉丝点击