目的是实现业务统计某样事经所用的时间,下面分享2种代码实现方法:
第一种:用时 = 当前时间 - 开始时间
//举例:计算考试用时//考试开始时间LocalDateTimecreateTime=examRecord.getCreateTime(); //先把开始时间格式,转换成毫秒数longcreate=createTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); //使用Java自带的静态方法,获取当前时间的毫秒数 System.currentTimeMillis()longcurrentTimeMillis=currentTimeMillis(); //相减得出时间差的毫秒值longtime=currentTimeMillis-create; System.out.println("考试用时为:"+time+" 秒");
System.currentTimeMillis()是Java中的一个静态方法,用于获取当前时间的毫秒数。它返回的是从Java纪元(1970年1月1日00:00:00 UTC)起的毫秒数。它通常用于计算代码执行时间、生成时间戳等。需要注意的是,currentTimeMillis()方法返回的时间不是绝对准确的,因为它受到系统时钟的精度和偏差的影响。
第二种:利用Duration.between()来实现
//举例 实现统计考试用时//开始时间LocalDateTimecreateTime=examRecord.getCreateTime(); longexamTime=Duration.between(createTime,LocalDateTime.now()).getSeconds(); System.out.println("考试用时为:"+examTime+" 秒");
Duration.between() 方法可以返回两个时间点之间的时间差,单位可以是纳秒、毫秒、秒等;
上述两种方法,对统计用时有较高的精准要求,推荐使用第一种,相反可使用第二种,我个人觉得第二种方法简便,一般的业务能满足。
纯属个人理解,有更好实现方法的大牛们,欢迎建议和补充。