java怎样计算两个日期之间的秒数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎样计算两个日期之间的秒数相关的知识,希望对你有一定的参考价值。

java中Date时间可以用getTime()来获得1970年1月1日到当前时间的毫秒数,所以可以这样来计算得出两个时间的秒数:
try

Date a = new Date();

Thread.sleep(3000);

Date b = new Date();

long interval = (b.getTime() - a.getTime())/1000;

System.out.println("两个时间相差"+interval+"秒");//会打印出相差3秒

catch (InterruptedException e)

e.printStackTrace();
参考技术A 有个getTimes方法,返回的就是时间戳,直接相减就是了

两个日期之间按小时分组的秒数

【中文标题】两个日期之间按小时分组的秒数【英文标题】:How many seconds passed by grouped by hour between two dates 【发布时间】:2016-06-27 14:54:31 【问题描述】:

假设我有一个开始日期2016-06-19 09:30:00 和一个结束日期2016-06-19 10:20:00

我想在开始下一小时之前或到达按小时和日期分组的以秒为单位的最后时间之前每小时经过的时间,我试图达到的结果(没有任何成功)将是像这样:

hour |    date    | time_elapsed_in_seconds
 9   | 2016-06-19 |  1800 (there are 1800 seconds between 09:30:00 and 10:00:00)
 10  | 2016-06-19 |  1200 (there are 1200 seconds between 10:00:00 and 10:20:00)

【问题讨论】:

你能给我们一些样本数据吗?很难想象我们应该查询什么。 @TimBiegeleisen 数据是开始日期和结束日期,我在表格中有一个 start_date 和一个 end_date 以及另一个信息(这是不相关的) 【参考方案1】:

试试这个:

        with table1 as (
      select '2016-06-19 09:30:00'::timestamp without time zone start_date,'2016-06-19 10:20:00'::timestamp without time zone end_date
      )


    select extract(hour from the_hour) "hour",the_hour::date "date",extract (epoch from (new_end-new_start)) "time_elapsed" from (
        select the_hour,CASE WHEN date_trunc('hour',start_date)=the_hour then start_date else the_hour end new_start,
                    CASE WHEN date_trunc('hour',end_date)=the_hour then end_date else the_hour+'1 hour'::interval end new_end 
           from (
              select generate_series(date_trunc('hour',start_date),end_date,'1 hour'::interval) the_hour,start_date,end_date from table1 
            ) a 
         ) b

【讨论】:

以上是关于java怎样计算两个日期之间的秒数的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发:计算两个事件之间经过的秒数的简单方法是啥?

java 中怎么比较两个时间相差的秒数

C/C++输入两个任意日期求相隔天数

java 计算两个时间相差多少秒

在 Python 中确定两个日期之间的秒数

两个日期之间按小时分组的秒数