Java 中Date类getTime()的方法返回从1970-1-1以来的毫秒数,这是下面函数运行的基础。

package com.example.demo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

public class TimeTest {
    private static Logger log = Logger.getLogger(TimeTest.class);

    public static void main(String[] args) {
        String startTime="2019-10-26 15:27:00";
        String endTime="2019-10-26 15:27:41";
        log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");

        // 2019-9-31并不存在,这里证明SimpleDateFormat将字符串转数字不是那么让人放心
        startTime="2019-9-31 00:00:00";
        endTime="2019-10-01 00:00:00";
        log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");

        // 2019-9-32也没报异常更让人担忧了
        startTime="2019-9-32 00:00:00";
        endTime="2019-10-02 00:00:00";
        log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");

        startTime="2019-9-30 15:27:00";
        endTime="2019-10-26 15:27:41";
        log.info(startTime+"与"+endTime+"之间差"+getDaysBetween(startTime,endTime)+"天");

        startTime="2019-10-26 08:00:00";
        endTime="2019-10-26 15:41:41";
        log.info(startTime+"与"+endTime+"之间差"+getHoursBetween(startTime,endTime)+"小时");
    }

    /**
     * 两个时间之间差多少秒
     * @param startTime
     * @param endTime
     * @return
     */
    public static long getSecondsBetween(String startTime,String endTime) {
        SimpleDateFormat formatter =new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");
        long seconds = 0L;

        try {
            Date startDate = formatter.parse(startTime);
            long msStart = startDate.getTime();

            Date endDate =  formatter.parse(endTime);
            long msEnd = endDate.getTime();

            seconds = ( msEnd-msStart ) / 1000 ;

        } catch (ParseException e) {
            e.printStackTrace();
        }

        return seconds;
    }

    /**
     * 两个时间之间差多少天
     * @param startTime
     * @param endTime
     * @return
     */
    public static long getDaysBetween(String startTime,String endTime) {
        SimpleDateFormat formatter =new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");
        long seconds = 0L;

        try {
            Date startDate = formatter.parse(startTime);
            long msStart = startDate.getTime();

            Date endDate =  formatter.parse(endTime);
            long msEnd = endDate.getTime();

            seconds = ( msEnd-msStart ) / (1000*60*60*24) ;

        } catch (ParseException e) {
            e.printStackTrace();
        }

        return seconds;
    }

    /**
     * 两个时间之间差多少小时
     * @param startTime
     * @param endTime
     * @return
     */
    public static long getHoursBetween(String startTime,String endTime) {
        SimpleDateFormat formatter =new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");
        long seconds = 0L;

        try {
            Date startDate = formatter.parse(startTime);
            long msStart = startDate.getTime();

            Date endDate =  formatter.parse(endTime);
            long msEnd = endDate.getTime();

            seconds = ( msEnd-msStart ) / (1000*60*60) ;

        } catch (ParseException e) {
            e.printStackTrace();
        }

        return seconds;
    }
}

输出:

 INFO [main] - 2019-10-26 15:27:00与2019-10-26 15:27:41之间差41秒
 INFO [main] - 2019-9-31 00:00:00与2019-10-01 00:00:00之间差0秒
 INFO [main] - 2019-9-32 00:00:00与2019-10-02 00:00:00之间差0秒
 INFO [main] - 2019-9-30 15:27:00与2019-10-26 15:27:41之间差26天
 INFO [main] - 2019-10-26 08:00:00与2019-10-26 15:41:41之间差7小时

--END-- 2019年10月26日15:45:14

[java]察看两个日期间差多少秒/小时/天的更多相关文章

  1. java 计算两个日期间的所有日期

    public static void main(String[] args) { Calendar start = Calendar.getInstance(); start.set(2014, 6, ...

  2. Java 两个日期间的天数计算

    在Java中计算两个日期间的天数,大致有2种方法:一是使用原生JDK进行计算,在JDK8中提供了更为直接和完善的方法:二是使用第三方库. 1.使用原生的JDK private static long  ...

  3. Oracle计算两天两个日期间相差的天数

    Oracle计算两天两个日期间相差的天数: select to_date('19930411','yyyymmdd')-to_date('19890507','yyyymmdd') from dual ...

  4. MySql获取两个日期间的时间差

    [1]MySql 语言获取两个日期间的时间差 DATEDIFF 函数可以获得两个日期之间的时间差.但是,这个函数得出的结果是天数. 需要直接获取秒数可使用TIMESTAMPDIFF函数.应用示例如下: ...

  5. [Xcode 实际操作]九、实用进阶-(4)计算两个日期间的差值

    目录:[Swift]Xcode实际操作 本文将演示如何计算两个日期之间的差值. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class ...

  6. java计算两个时间相差(天、小时、分钟、秒)

    public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格 ...

  7. python获取两个日期间的工作日

    import datetime # 计算两个日期之间的工作日数,非天数. class workDays(): def __init__(self, start_date, end_date, days ...

  8. JavaScript如何计算两个日期间的时间差

    <script type="text/javascript"> /* * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒 * 其中 ...

  9. JS获取两个日期间的所有日期

    var stime = '2018-07-25'; //开始日期 var etime = '2018-08-02'; //结束日期 getdiffdate(stime,etime); //获取两日期之 ...

随机推荐

  1. MYSQL8.0以上版本ROOT密码报错及修改

    在登录数据库过程中,如果遇到忘记root密码时,该如何解决? 1.使用管理员权限打开命令提示符,在命令行中输入: net stop mysql  2.待mysql服务停止后,输入: mysqld -- ...

  2. OGG 自动重启脚本

    6-20 * * * /oggdata/log/oggautorestart.sh >/oggdata/log/crontab_oggautorestart.log 2>&1 [说 ...

  3. Computer Vision_33_SIFT:Object recognition from local scale-invariant features——1999

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  4. 解决在Linux操作系统下无法连接MySQL服务端的问题

    遇到这种问题的时候我们需要考虑的是防火墙规则,因为防火墙默认是禁止所有端口访问的,所以我们需要添加一个访问端口来连接MySQL. 命令如下: 允许某端口   firewall-cmd  --zone= ...

  5. 华擎 J3455 主板装 Linux 系统

    入手华擎J3455 ITX 主板,装备安装一个 redhat 来学习linux,及做一个家庭 web 服务器.但安装过程一波三折. 问题1.使用U盘引导不了,首先华擎这块板是 UEFI 板,用之前的老 ...

  6. 02 WIndows编程——危险的sizeof

    C语言中,对 sizeof() 的处理都是在编译阶段进行. 下面代码,注意可变参数是怎么使用的 #include<Windows.h> #include<stdio.h> in ...

  7. PAT Basic 1077 互评成绩计算 (20 分)

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  8. CrawlSpider ---> 通用爬虫 项目流程

    通用爬虫 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 不扯 ...

  9. 在 Queue 中 poll()和 remove()有什么区别?(未完成)

    在 Queue 中 poll()和 remove()有什么区别?(未完成)

  10. Paper Reading:DetNet

    论文:DetNet: A Backbone network for Object Detection 发表时间:2018 发表作者:(Face++)Chao Peng, Gang Yu (Tsingh ...