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. 在IOS中根据圆心坐标、半径和角度计算圆弧上的点坐标

    /** 日期:2015-10-15 版本: 1.0.0 -------------------------------------------------------------- 功能说明 ---- ...

  2. QT 定时器的使用方法

    在界面程序中很容易使用到,定时刷新或者更新什么东西,此时应该使用定时器的功能,定时器是在指定时间触发定时器函数,来达到定时的效果 接下来介绍两种定时器的使用,废话不说直接上代码 代码结构: dialo ...

  3. sql创建临时表并且插入数据

    if OBJECT_ID('tempdb..#temp') is not null drop table #temp select * into #temp from ( --select * fro ...

  4. C#基础 类及常用函数【string 、Math 、DiteTime 、TimeSpan】

    一  string 类型 string str = "abcdefg"; str.Length  -  字符串长度,返回int类型 str.TrimStart()          ...

  5. python2,3区别

      Python2 Python3 default charset ascii(can change) utf-8 print 可不加括号 必须加 range 有xrange()生成器 可转换为ran ...

  6. Xen 虚拟化技术

    Xen 是一种开源的.属于类型1(裸金属虚拟化,Baremetal Hypervisor)的虚拟化技术,它使多个同样操作系统或不同操作系统的虚拟机运行在同一个物理主机节点上成为可能并实现. Xen 是 ...

  7. Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装

    Ubuntu系统---“NVIDIA 驱动+CUDA+cuDNN ”之后 OpenCV安装 目录: 一.OpenCV安装包下载 二.cmake安装 三.OpenCV安装 正文 一.OpenCV安装包下 ...

  8. Tcp/IP协议详讲

    TCP/IP协议分层详解 目录 TCP/IP 和 ISO/OSI TCP/IP分层模型 数据的封装与分用 其他相关概念 TCP/IP 通信传输流 负责传输的 IP 协议 正文 回到顶部 TCP/IP ...

  9. PHP 获取上传文件的实际类型

    方案一: mime_content_type ( string $filename ) : string (PHP 4 >= 4.3.0, PHP 5, PHP 7) mime_content_ ...

  10. Ubuntu Linux虚拟机与windows快速创建共享文件夹

    有时候我们需要在windows下与远程Linux服务器传输文件,之前使用pscp传输文件很方便,但不方便传输多文件,同时也不便于查看.看了网上的教程总结创建共享文件夹的流程: 1.首先在本地windo ...