importjava.sql.Timestamp;importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importorg.apache.commons.lang3.time.DateFormatUtils;/*** 类名称:DateUtil

* 类描述: 时间操作工具

*@version

*/

public classDateUtil {/*** 生成ISO-8601 规范的时间格式

*@paramdate

*@return

*/

public staticString formatISO8601DateString(Date date){

String pattern= "yyyy-MM-dd'T'HH:mm:ss.SSSZ";returnDateFormatUtils.format(date, pattern);

}/*** 获取反时间戳

*@return

*/

public staticLong getCurrentReverseTime(){long longTime = System.currentTimeMillis()*1000000 + CalculateUtil.getNext(999999);return Long.MAX_VALUE -longTime;

}/*** 获取原时间戳

*@paramreverseTime

*@return

*/

public staticLong recoverReverseTime(Long reverseTime){long longTime = Long.MAX_VALUE -reverseTime;return longTime/1000000;

}/*** 生成页面普通展示时间

*@paramdate

*@return

*/

public staticString formatNormalDateString(Date date){

String pattern= "yyyy-MM-dd HH:mm:ss";returnDateFormatUtils.format(date, pattern);

}/*** 日期转换为字符串 yyyy-MM-dd

*

*@paramdate

*@return

*/

public staticString getShotDate(Date date) {if (date == null){return "";

}return dateStr(date, "yyyy-MM-dd");

}/*** 日期转换为字符串 格式自定义

*

*@paramdate

*@paramf

*@return

*/

public staticString dateStr(Date date, String f) {if (date == null){return "";

}

SimpleDateFormat format= newSimpleDateFormat(f);

String str=format.format(date);returnstr;

}/*** 获得当前日期

*@return

*/

public staticDate getNow() {

Calendar cal=Calendar.getInstance();

Date currDate=cal.getTime();returncurrDate;

}/*** 获得当前日期,精确到毫秒

*@return

*/

public staticTimestamp getNowInMillis() {

Timestamp timeStamep= newTimestamp(getNow().getTime());returntimeStamep;

}public staticDate getDateByStrTime(String dateStr, String format) {

SimpleDateFormat sdf= newSimpleDateFormat(format);try{returnsdf.parse(dateStr);

}catch(ParseException e) {

e.printStackTrace();

}return null;

}/*** 计算两个日期之间相差的天数

*@paramdate1

*@paramdate2

*@returndate1>date2时结果<0, date1=date2时结果=0, date2>date1时结果>0*/

public static intdaysBetween(Date date1, Date date2, String format){

DateFormat sdf=newSimpleDateFormat(format);

Calendar cal=Calendar.getInstance();try{

Date d1=sdf.parse(DateUtil.dateStr(date1, format));

Date d2=sdf.parse(DateUtil.dateStr(date2, format));

cal.setTime(d1);long time1 =cal.getTimeInMillis();

cal.setTime(d2);long time2 =cal.getTimeInMillis();return Integer.parseInt(String.valueOf((time2 - time1) / 86400000L));

}catch(ParseException e) {

e.printStackTrace();

}return 0;

}/*** 计算两个日期之间相差的小时数

*@paramdate1

*@paramdate2

*@return

*/

public static inthoursBetween(Date date1, Date date2) {

DateFormat sdf= new SimpleDateFormat("yyyyMMdd");

Calendar cal=Calendar.getInstance();try{

Date d1= sdf.parse(DateUtil.dateStr(date1, "yyyyMMdd"));

Date d2= sdf.parse(DateUtil.dateStr(date2, "yyyyMMdd"));

cal.setTime(d1);

cal.setTime(d1);long time1 =cal.getTimeInMillis();

cal.setTime(d2);long time2 =cal.getTimeInMillis();return Integer.parseInt(String.valueOf((time2 - time1) / 3600000L));

}catch(ParseException e) {

e.printStackTrace();

}return 0;

}/*** 计算两个日期相差的时间*/

public static voidgetBetweenDate () {

String dateStart= "2017111520";

String dateStop= "2017111620";

SimpleDateFormat format= new SimpleDateFormat("yyyyMMddHH");

Date d1= null;

Date d2= null;try{

d1=format.parse(dateStart);

d2=format.parse(dateStop);//毫秒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+ " 秒.");

}catch(Exception e) {

e.printStackTrace();

}

}/*** 计算两个日期之间相差的小时数

*@paramdate1

*@paramdate2

*@returndate1>date2时结果<0, date1=date2时结果=0, date2>date1时结果>0*/

public static inthoursBetweenByDateStr(Date date1, Date date2) {

DateFormat sdf=new SimpleDateFormat("yyyyMMddHH");

Calendar cal=Calendar.getInstance();try{

Date d1= sdf.parse(DateUtil.dateStr(date1,"yyyyMMddHH"));

Date d2= sdf.parse(DateUtil.dateStr(date2,"yyyyMMddHH"));

cal.setTime(d1);long time1 =cal.getTimeInMillis();

cal.setTime(d2);long time2 =cal.getTimeInMillis();return Integer.parseInt(String.valueOf(((time2 - time1) / 3600000L)));

}catch(ParseException e) {

e.printStackTrace();

}return 0;

}/*** 计算两个日期之间相差的分钟数

*@paramdate1

*@paramdate2

*@returndate1>date2时结果<0, date1=date2时结果=0, date2>date1时结果>0*/

public static intminuteBetweenByDateStr(Date date1, Date date2) {

DateFormat sdf=new SimpleDateFormat("yyyyMMddHHmm");

Calendar cal=Calendar.getInstance();try{

Date d1= sdf.parse(DateUtil.dateStr(date1,"yyyyMMddHHmm"));

Date d2= sdf.parse(DateUtil.dateStr(date2,"yyyyMMddHHmm"));

cal.setTime(d1);long time1 =cal.getTimeInMillis();

cal.setTime(d2);long time2 =cal.getTimeInMillis();return Integer.parseInt(String.valueOf(((time2 - time1) / 60000L)));

}catch(ParseException e) {

e.printStackTrace();

}return 0;

}/*** 计算两个日期之间相差的秒数

*@paramdate1

*@paramdate2

*@returndate1>date2时结果<0, date1=date2时结果=0, date2>date1时结果>0*/

public static intsecondBetweenByDateStr(Date date1, Date date2) {

DateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");

Calendar cal=Calendar.getInstance();try{

Date d1= sdf.parse(DateUtil.dateStr(date1, "yyyyMMddHHmmss"));

Date d2= sdf.parse(DateUtil.dateStr(date2, "yyyyMMddHHmmss"));

cal.setTime(d1);long time1 =cal.getTimeInMillis();

cal.setTime(d2);long time2 =cal.getTimeInMillis();return Integer.parseInt(String.valueOf(((time2 - time1) / 1000L)));

}catch(ParseException e) {

e.printStackTrace();

}return 0;

}public static voidmain(String[] args) {

System.out.println(hoursBetweenByDateStr(getDateByStrTime("2018010223", "yyyyMMddHH"), getDateByStrTime("2018010323", "yyyyMMddHH")));

System.out.println(minuteBetweenByDateStr(getDateByStrTime("201801052359", "yyyyMMddHHmm"), getDateByStrTime("201801060000", "yyyyMMddHHmm")));//2.活动结束时间>0 ( 默认2018年1月5号 20:30结束)

if( DateUtil.minuteBetweenByDateStr (DateUtil.getDateByStrTime("201801111348","yyyyMMddHHmm"), DateUtil.getNow()) > 0){

System.out.println(DateUtil.minuteBetweenByDateStr (DateUtil.getDateByStrTime("201801111348","yyyyMMddHHmm"), DateUtil.getNow()));

}else{

System.out.println("时间未结束");

}

System.out.println(DateUtil.secondBetweenByDateStr(DateUtil.getDateByStrTime("20180110150200","yyyyMMddHHmmss"), DateUtil.getNow()));

}

}

dateutil 日期计算_DateUtil日期工具类相关推荐

  1. dateutil 日期计算_时间工具类DateUtil的使用

    ###前言 在Android开发过程中,我们经常会用到时间相关方法.这里我封装一个时间工具类`DateUtil`,以方便使用. 今天涉及内容: 1. DateUtil在MainActivity中的使用 ...

  2. android 日期时间类,Android 日期时间等转换工具类

    package com.easyder.util; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期时间等转换工具类 ...

  3. dateutil 日期计算_日期时间 - 日期时间工具-DateUtil - 《Hutool 参考文档》 - 书栈网 · BookStack...

    日期时间工具-DateUtil 由来 考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装.这其中的封装主要是日期和字符串 ...

  4. Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类

    在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...

  5. 蓝桥杯日期计算java_日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  6. JSON字符串与对象,日期对象的转换工具类实现

    代码如下: package com.chuang.utils;import com.fasterxml.jackson.core.JsonProcessingException; import com ...

  7. Aqi计算首要污染物工具类

    package com.cc.common.utils.aqiutil;import java.util.ArrayList; import java.util.Arrays; import java ...

  8. 腾讯开放平台接口鉴权(计算签名)工具类 java版

    腾讯开放平台 接口鉴权(签名)工具类 java版 用到了Hutool工具类 package top.seasmall.platform.core.config.nettyws.util;import ...

  9. 定义日期类,根据输入的日期计算明天日期,上机实践--我的c++之路

    //这个程序有缺点,不能输入每个月最后一天.否则计算出错...可是不知道怎么才能解决,有日期数据类型就好了.以后学习过程中改进吧 #include<iostream.h> class cd ...

  10. java calendar日期计算_JAVA中用CALENDAR类计算周和周的起始日期(转)

    1 packagecom.tongyue.hot.web;2 3 importjava.util.Calendar;4 importjava.util.Date;5 importjava.util.G ...

最新文章

  1. 领导让我重构代码_领导不是由代码构成
  2. MySQL缓存之Qcache与buffer pool对比
  3. 正则判断 空格_js关于正则的前后关联约束(前后预查)
  4. ITK+VTK+VS环境搭建.Q:vs编译出问题参见VTK(一)哈。
  5. 帆软高级函数应用之时间函数
  6. WinRAR 5.71 官方简体中文无广告弹窗版本
  7. 计算机接口时序波形图怎样看,TimeQuest就一定要搞定——看懂时序波形图
  8. 前端面试,面试官会问些啥...
  9. CRMEB小程序商城v4.0二次开发对接集成阿里云短信
  10. 【教学类-06-01】测20以内加减法的最大数量(优化版 20220122 VS python 20以内加减法)
  11. 实习工作日志-2019.02.25
  12. Docker(2) 安全加密,habor仓库和Docker网络
  13. 在 uni-app 中 使用字体图标
  14. 中科大计算机博士毕业条件,惊呆!中科大博士毕业6年后再考医学专科,他这样回应……...
  15. 数据集分类不平衡的影响与处理
  16. XUI框架实现比原生框架更好看并且功能更齐全的EditText框?,以及如何获取EditText的值
  17. 微信支付结算费率怎么降低至0.2~0.35操作方法
  18. python字符串的表示_python字符串的各种表达方式
  19. 函数图像变换的规律,以一元函数和二元函数为例来说明,对多元函数同样适用。...
  20. 部署Django项目到华为云服务器教程

热门文章

  1. postman下载地址
  2. js动态显示实时时间
  3. 华为折叠手机是鸿蒙系统吗,华为发布新一代折叠屏手机 将首批升级鸿蒙系统...
  4. wifi数据包解析_WiFi通讯协议详解
  5. SpringBoot整合Cas
  6. Qt中使用QtDataVisualization实时绘制雷达点云三维散点图
  7. android 获取路由器id,华为路由器从旧路由获取宽带帐号和密码具体教程
  8. 安徽省2019c语言二级答案,2019-C语言二级考试题库(含答案).docx
  9. 作为公共组软件工程师如何工作
  10. Python中函数介绍及其使用