[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); //获取两日期之 ...
随机推荐
- 小白_开始学Scrapy__原理
整体架构 引擎(Scrapy Engine),用来处理整个系统的数据流处理,触发事务. 调度器(Scheduler),用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回. 下载器(Dow ...
- CentOS7安装CDH 第三章:CDH中的问题和解决方法
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- LAMP源码编译安装
php加速器 XCache 快速而且稳定的PHP opcode缓存,经过严格测试且被大量用于生产环境. 项目地址:http://xcache.lighttpd.net/,收录EPEL源 实现XCach ...
- java_字符串
一.字符串变量 由一个专门的字符串类来进行存储处理字符串的,String类 二.字符串的连接 连接符:+ 转义字符 每个转义字符都是由两个符号组成,但是编译器把它当成一个字符. 三.字符串处理 1.求 ...
- FreeRTOS调度器
FreeRTOS----调度器 调度器的启动流程分析 当创建完任务之后,会调用vTaskStartScheduler()函数,启动任务调度器: void vTaskStartScheduler( vo ...
- 深入理解Kubernetes资源限制:CPU
写在前面 在上一篇关于Kubernetes资源限制的文章我们讨论了如何通过ResourceRequirements设置Pod中容器内存限制,以及容器运行时是如何利用Linux Cgroups实现这些限 ...
- Spark(二)算子详解
目录 Spark(二)算子讲解 一.wordcountcount 二.编程模型 三.RDD数据集和算子的使用 Spark(二)算子讲解 @ 一.wordcountcount 基于上次的wordcoun ...
- C#开发windows服务如何调试——资料整理
原文标题:C# Windows服务程序如何进行调试 原文地址:https://jingyan.baidu.com/article/456c463b18e1b00a583144b3.html 第一种: ...
- vue3.0+typeScript项目
https://segmentfault.com/a/1190000018720570#articleHeader15 https://segmentfault.com/a/1190000016423 ...
- 5 webpack-dev-server的常用命令参数--open --port 3000 --contentBase src --hot
--open 自动打开浏览器 --port 3000 指定端口3000 --contentBase src 内容的根路径 --hot 热重载,热更新.打补丁,实现浏览器的无刷新