[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); //获取两日期之 ...
随机推荐
- EF方式增加数据
单条记录添加 第一种方式: public void AddRegion() { using(Northwind db = new Northwind()) { Region regi ...
- linux centos安装nginx1.7.4
原文转自 jerryhe326:https://www.cnblogs.com/jerrypro/p/7062101.html一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装ng ...
- 《浏览器工作原理与实践》<10>作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
在上一篇文章中我们讲到了什么是作用域,以及 ES6 是如何通过变量环境和词法环境来同时支持变量提升和块级作用域,在最后我们也提到了如何通过词法环境和变量环境来查找变量,这其中就涉及到作用域链的概念. ...
- 【ecfinal2019热身赛】B题
原题: 给你一个长度为1e5的序列ai,问你它的所有子序列的最大值与最小值之差的1000次方的和是多少 即∑_{p是a的子序列}(max{p}-min{p})^1000 这题难点在于(max-min) ...
- PHP返回JSON数据及中文编码问题的解决方案
在处理app接口的时候 ,中文在经过json_encode之后 变成\ \格式 想在返回接口的时候 中文不被转换 解决办法 第一种解决办法 exit(json_encode($result,JSON ...
- vue.js 常用指令用法
v-if v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素. 如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除: 否则,对应元素的一个克隆将被重新插入DOM中,代码如 ...
- python协程初步--gevent库使用以及解释什么是猴子补丁monkey_patch
协程工作的特点是遇到阻塞或耗时的任务时就切换,协程的生存依赖于线程,线程依赖于进程 一个似乎有点问题的例子 import gevent,time def kisscpc(num): for i in ...
- 分布式文件系统FastDFS架构认知
FastDFS是一款类Google FS的开源分布式文件系统(应用级的分布式文件存储服务). FastDFS的设计理念 FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份.负载均 ...
- HDU 6143 - Killer Names | 2017 Multi-University Training Contest 8
/* HDU 6143 - Killer Names [ DP ] | 2017 Multi-University Training Contest 8 题意: m个字母组成两个长为n的序列,两序列中 ...
- python第三方库的更新和安装指定版本
安装指定版本: pip install openpyxl==2.3.4 更新到最新版本: pip install --upgrade openpyxl