[java]察看两个日期间差多少秒/小时/天
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]察看两个日期间差多少秒/小时/天的更多相关文章
- java 计算两个日期间的所有日期
public static void main(String[] args) { Calendar start = Calendar.getInstance(); start.set(2014, 6, ...
- Java 两个日期间的天数计算
在Java中计算两个日期间的天数,大致有2种方法:一是使用原生JDK进行计算,在JDK8中提供了更为直接和完善的方法:二是使用第三方库. 1.使用原生的JDK private static long ...
- Oracle计算两天两个日期间相差的天数
Oracle计算两天两个日期间相差的天数: select to_date('19930411','yyyymmdd')-to_date('19890507','yyyymmdd') from dual ...
- MySql获取两个日期间的时间差
[1]MySql 语言获取两个日期间的时间差 DATEDIFF 函数可以获得两个日期之间的时间差.但是,这个函数得出的结果是天数. 需要直接获取秒数可使用TIMESTAMPDIFF函数.应用示例如下: ...
- [Xcode 实际操作]九、实用进阶-(4)计算两个日期间的差值
目录:[Swift]Xcode实际操作 本文将演示如何计算两个日期之间的差值. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class ...
- java计算两个时间相差(天、小时、分钟、秒)
public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格 ...
- python获取两个日期间的工作日
import datetime # 计算两个日期之间的工作日数,非天数. class workDays(): def __init__(self, start_date, end_date, days ...
- JavaScript如何计算两个日期间的时间差
<script type="text/javascript"> /* * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒 * 其中 ...
- JS获取两个日期间的所有日期
var stime = '2018-07-25'; //开始日期 var etime = '2018-08-02'; //结束日期 getdiffdate(stime,etime); //获取两日期之 ...
随机推荐
- MVC方式显示数据(手动添加数据)
Model添加类 Customers using System; using System.Collections.Generic; using System.Linq; using System.W ...
- Image Processing and Analysis_8_Edge Detection:Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues ——2004
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- Linux命令——vi、cut、tr、wc、sort、uniq
vi 和 vim ^跳转当前行第一个非空字符 Ctrl + b向下翻页 Ctrl + f向上翻页 Shift + % 找到()[] {},以及在括号之间来回切换 全局替换 一次性替换文件中的所有出现的 ...
- (14)占位符%和format
# 在介绍占位符之前,这里先介绍下索引,索引可以方便的帮我们拿到容器内的数据 # 索引可以简单的理解为一个有序的标记,我们把容器里的元素每一个都编上一个编号 # 凡是有序的容器类型数据,都可以通过索引 ...
- win10锁屏壁纸文件夹Assets中无文件问题的解决方法
一.前言 win10在锁屏时会有很多精美的壁纸,在网上查找到win10锁屏壁纸存放目录为 : C:\Users\你的用户名\AppData\Local\Packages\Microsoft.Windo ...
- 2018牛客网暑期ACM多校训练营(第二场)I- car ( 思维)
2018牛客网暑期ACM多校训练营(第二场)I- car 链接:https://ac.nowcoder.com/acm/contest/140/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 ...
- centos6.5下cacti部署说明
一.Cacti简介 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户. ...
- Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出
Map笔记: import java.util.*; /**一:Collection接口的 * Map接口: HashMap(主要实现类) : HashedMap / LinkedHashMap /T ...
- Oracle自动化安装脚本-part02-亲试ok
此为网络配置文件 network.conf [PUBLIC-IP] IP-LIST:192.168.7.198,192.168.8.221 HOSTNAME-LIST:mysql-198,RAC2 ...
- easyui-dialog打开之后append("标签")标签存在但是显示不出来
初始化dialog $("#upDiv").dialog("open");//初始化dialog弹出窗口 注意: 1: append("标签&quo ...