[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); //获取两日期之 ...
随机推荐
- MYSQL8.0以上版本ROOT密码报错及修改
在登录数据库过程中,如果遇到忘记root密码时,该如何解决? 1.使用管理员权限打开命令提示符,在命令行中输入: net stop mysql 2.待mysql服务停止后,输入: mysqld -- ...
- OGG 自动重启脚本
6-20 * * * /oggdata/log/oggautorestart.sh >/oggdata/log/crontab_oggautorestart.log 2>&1 [说 ...
- Computer Vision_33_SIFT:Object recognition from local scale-invariant features——1999
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- 解决在Linux操作系统下无法连接MySQL服务端的问题
遇到这种问题的时候我们需要考虑的是防火墙规则,因为防火墙默认是禁止所有端口访问的,所以我们需要添加一个访问端口来连接MySQL. 命令如下: 允许某端口 firewall-cmd --zone= ...
- 华擎 J3455 主板装 Linux 系统
入手华擎J3455 ITX 主板,装备安装一个 redhat 来学习linux,及做一个家庭 web 服务器.但安装过程一波三折. 问题1.使用U盘引导不了,首先华擎这块板是 UEFI 板,用之前的老 ...
- 02 WIndows编程——危险的sizeof
C语言中,对 sizeof() 的处理都是在编译阶段进行. 下面代码,注意可变参数是怎么使用的 #include<Windows.h> #include<stdio.h> in ...
- PAT Basic 1077 互评成绩计算 (20 分)
在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...
- CrawlSpider ---> 通用爬虫 项目流程
通用爬虫 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 不扯 ...
- 在 Queue 中 poll()和 remove()有什么区别?(未完成)
在 Queue 中 poll()和 remove()有什么区别?(未完成)
- Paper Reading:DetNet
论文:DetNet: A Backbone network for Object Detection 发表时间:2018 发表作者:(Face++)Chao Peng, Gang Yu (Tsingh ...