码上敲享录 > java入门知识分享 > Java计算两个时间差

Java计算两个时间差

上一章章节目录下一章 2020-06-04已有1557人阅读 评论(0)

   @Test

   public void lmpToGesWeek1(){

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String lmp = "2020-01-04 14:30:20";

       String sampleDate = "2020-06-04 20:43:20";

       long weeks = 0;

       long days = 0;

       long hours = 0;

       try {

           //两个时间差

           long diff = sdf.parse(sampleDate).getTime() - sdf.parse(lmp).getTime();

           weeks = diff/( 1000*60*60*24*7 );

           days = (diff - weeks*(1000*60*60*24*7))/(1000*60*60*24);

           hours = (diff - weeks*(1000*60*60*24*7) - days*(1000*60*60*24) )/(1000*60*60);

       }catch (Exception e){

           e.printStackTrace();

       }

       System.out.println(weeks+"周"+days+"天"+hours+"时");

   }



解析:

1. 先将时间转化为时间的毫秒数(时间戳),然后再对比两个时间的大小

2. 周:一周有7天,一天有24小时,一小时有60分钟,一分钟有60秒,一秒有1000毫秒,

所有1000*60*60*24*7是一周的毫秒数

3. 天:一天有24小时,一小时有60分钟,一分钟有60秒,一秒有1000毫秒,

所有1000*60*60*24*7是一周的毫秒数

3. 小时:一小时有60分钟,一分钟有60秒,一秒有1000毫秒,

所有1000*60*60*24*7是一周的毫秒数

4. 时间戳:是指格林威治时间1970年01月01日00时00分00秒起至当下的总秒数


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交