使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒
package jodotest; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.Hours;
import org.joda.time.Interval;
import org.joda.time.Minutes;
import org.joda.time.Period;
import org.joda.time.Seconds; /**
* @author wanggang
*
*/
public class Test {
public static void test1(Date d1, Date d2){ // 毫秒ms
long diff = d2.getTime() - d1.getTime(); long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000); System.out.print("时间相差:");
System.out.print(diffDays + " 天 ");
System.out.print(diffHours + " 小时 ");
System.out.print(diffMinutes + " 分钟 ");
System.out.print(diffSeconds + " 秒.");
System.out.println();
} public static void test2(Date d1, Date d2) throws ParseException{ DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);
System.out.print("时间相差:");
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " 天 ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " 小时 ");
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " 分钟 ");
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60+ " 秒.");
System.out.println();
} public static void test3(Date d1, Date d2){
Interval interval = new Interval(d1.getTime(), d2.getTime());
Period p = interval.toPeriod();
System.out.println("时间相差:"+p.getDays()+" 天 " + p.getHours()+ " 小时 "+p.getMinutes()+" 分钟"+p.getSeconds()+" 秒");
} /**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
String dateStart = "2013-08-13 16:29:58";
String dateStop = "2013-08-13 16:31:48"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1 = format.parse(dateStart);
Date d2 = format.parse(dateStop);
test1(d1, d2);
test2(d1, d2);
test3(d1, d2);
}
}
可以看看,两种写法的优缺点。
使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒的更多相关文章
- Js Jquery 时间控件显示小时 分钟 秒
// ui.js 自带的datepicker 插件只能显示日期不能显示时分秒 使用dateTimePicker可以显示时间 效果图: 首先需要引用 js和css 注意 ui.js的顺序要在s ...
- SQL计算时间差,要精确到小时分钟秒
declare @starttime as datetime declare @endtime as datetime set @starttime = '2009-11-24 15:10:00' s ...
- PHP date函数时间相差8个小时解决办法
php中date时间相差8个小时的解决办法 作者: PHP中文网|标签:|2016-7-25 08:46 在Windows上,在默认的PHP配置下,date函数返回的时间值和当地时间总是相差8小时,即 ...
- 【PTA】5-2 下列程序读入时间数值,将其加1秒后输出,时间格式为:hh: mm: ss,即“小时:分钟:秒”,当小时等于24小时,置为0。
5-2 下列程序读入时间数值,将其加1秒后输出,时间格式为:hh: mm: ss,即"小时:分钟:秒",当小时等于24小时,置为0. #include <stdio.h> ...
- 时间工具类之"获取相差天数"
一.时间工具类DateUtils之"获取相差天数" 1 /** 2 * 相差天数 3 * 4 * <p>TODO 方法功能描述 5 * 6 * @param start ...
- Windows和Ubuntu双系统时间相差8个小时的问题
由于要学编程,在windows 10上安装了Ubuntu16.04双系统.但是却造成windows时间老是比实际时间慢八个小时,Ubuntu会与网络同步时间,但是在程序中调用主板时间时仍然是UTC时间 ...
- MySQL 查询出的时间相差几个小时
最近做的一个springboot2.0项目. 前提是我的服务器时区没有问题: [root@wangbo ~]# date -R Mon, 22 Apr 2019 19:24:33 +0800 可以参考 ...
- tomcat 时间相差8个小时,百度上查到的,备份下
通常网上一查都是 修改 tomcat 的参数 ,如catalina 文件,jvm parameters 等.如果都不起作用,可以使用如下方式.. 你可以修改jdk的时间校正了,你这么来.进入 \hom ...
- C11工具类:时间处理
C++11提供时间管理类,包括三种类型:时间间隔duration,时钟clocks,时间点time point. 1.记录时常的duration 1.1 原型 duration表示一段时间间隔,用来记 ...
随机推荐
- 观《IT培训行业揭秘》触发北大青鸟回忆
在园子里看到这篇文章<IT培训行业解密(六)>时,挺有感触,回忆顿时涌上心头: 我想起了当年单纯的我们因为各自的原因来到北大青鸟,或因前途迷茫而选择想找一条出路,或因父母的信息闭塞而想给我 ...
- sql备份文件兼容性问题
第一步: 右键需要备份的数据库,选择"属性"
- hdu3715
hdu3715 题意 给出一个递归的伪代码,当 x[a[dep]] + x[b[dep]] != c[dep],就向下递归,给出a,b,c数组的值 问 dep 最大多少.其中 0 <= c[i] ...
- JavaScript:window.onload问题
前几天做一个点击按钮,就实现切换图片效果的小demo时,代码看上去没问题,就是达不到效果.让我百思不得其解. 代码如下: <!DOCTYPE html> <html> < ...
- python对mysql数据库操作的三种不同方式
首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...
- 【Web开发】Mean web开发 01-Express实现MVC模式开发
简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 ...
- mysql之 mysql 5.6不停机主从搭建(一主一从)
环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...
- Promise,Async,await简介
Promise 对象 转载:http://wiki.jikexueyuan.com/project/es6/promise.html 基本用法 ES6 原生提供了 Promise 对象.所谓 Prom ...
- 定期清空log文件
# auto-del-log.sh #!/bin/shfor i in `find . -name "*.out" -o -name "*.log"`do c ...
- WPF中实现类智能感知
首先要做的事情就是定义一个popup来显示我们需要展示的东西 <Popup x:Name=" StaysOpen="False" Placement="B ...