[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); //获取两日期之 ...
随机推荐
- BPM软件_财务报销流程管理解决方案_K2工作流引擎
财务报销,对任何企业都是日常运营中重要的一个环节.但报销流程周期长,反复签字手续繁杂,报销过程不透明 ,单据归档保存.检索困难等问题也让员工头疼.为了解决这些困扰,财务报销流程电子化一时成为热门之选. ...
- vulnhub攻略
https://www.vulnhub.com/entry/21ltr-scene-1,3/ 这个靶机国内https://www.cnblogs.com/hack404/p/11423228.html ...
- c#界面卡死处理方法
方法一: 设置属性: Control.CheckForIllegalCrossThreadCalls = false; 开启一个新线程 Thread th = new Thread(() => ...
- 【OGG 故障处理】 丢失归档恢复
OGG 有两天由于某种原因没有启动,而这段时间的备份文件缺失了一部分归档.恢复过程记录如下: GGSCI (xxxx) > info all Program Status Group Lag a ...
- Win7升级Win10系统提示错误0x80070057的解决方法
Win7系统用户在通过Windows Update来升级Win10系统时,有时会出现0x80070057的错误代码从而导致无法继续升级.下面好系统重装助手就来告诉大家Win7升级Win10系统出现0x ...
- centos7防火墙相关
selinux(保护文件安全) 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SE ...
- MySQL 进阶4 SQL常见函数: 字符函数/数学函数/日期函数/流程控制函数(if/case)
# 进阶4 SQL常见函数 分类: 1/单行函数: 字符函数: concat(),length(),ifnull(__,default) ,instr(), trim(),upper(),lower( ...
- windows下对socket的send和recv的超时设置,并附一个简洁明了的socket简单demo
设置方法 int nNetTimeout=10000;//10秒, //设置发送超时 setsockopt(m_socket,SOL_SOCKET,SO_SNDTIMEO,(char *) ...
- Robot Framework--运行pybot时出错
1.在Execution Profile中选择 pybot,点击 start,报错,找不到指定文件 2.在cmd中运行pybot.bat也是报错---pybot is not define 3.找到p ...
- JAVA遇见HTML——JSP篇(JavaBeans)
1.像使用普通java类一样,创建javabean实例,利用构造方法创建实例 跟表单关联,“*”表示根据名称来进行匹配,就是根据表单所提交过来的参数的名字和Javabean当中的属性名字来进行一一匹配 ...