时间日期类介绍
DateUtil 针对日期时间操作提供一系列静态方法
DateTime 提供类似于Joda-Time中日期时间对象的封装,继承Date
FastDateFormat 提供线程安全的针对Date对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已封装在DateUtil和DateTime的相关方法中。
DateBetween 计算两个时间间隔的类,除了通过构造新对象使用外,相关操作也已封装在DateUtil和DateTime的相关方法中。
TimeInterval 一个简单的计时器类,常用于计算某段代码的执行时间,提供包括毫秒、秒、分、时、天、周等各种单位的花费时长计算,对象的静态构造已封装在DateUtil中。
DatePattern 提供常用的日期格式化模式,包括String和FastDateFormat两种类型。
个人觉得主要需要了解DateUtil类,DateTime类以及DatePattern类就可以应对大多数时间日期的操作了。下面我们依次来看吧!

DateUtil
首先要说明DateUtil中都是静态方法,方便调用,先来看一些实用的方法吧!

一些简单方法
一些简单方法

now():String

当前日期时间 yyyy-MM-dd hh:mm:ss

today():String

今天日期 yyyy-MM-dd

currentSeconds():long

毫秒数

thisYear():int

年份

thisMonth():int

月份(从0开始)

thisWeekOfMonth():int

本月周次(从1开始)

thisWeekOfYear():int

本年周次(从1开始)

thisDayOfMonth():int

本月第几天(从1开始)

thisDayOfWeek():int

本周第几天(从1开始)

thisHour(boolean is24HourClock):int

当前小时

thisMinute():int

当前分

thisSecond():int

当前秒

lastWeek():DateTime

上周今天(往前7天)

lastMonth():DateTime

上个月今天(往前一个月)

nextWeek():DateTime

下周今天(往后7天)

nextMonth():DateTime

下个月今天(往后一个月)

yesterday():DateTime

昨天同时

tomorrow():DateTime

明天同时

这些方法都很简单,相信大家了解一下就可以在项目中使用了!

格式化时间日期
Hutool可以很方便的将一些固定格式的字符串转化为Date对象:

yyyy-MM-dd hh:mm:ss
yyyy-MM-dd
hh:mm:ss
yyyy-MM-dd hh:mm
将这些字符串转为Date对象使用DateUtil.parse()方法。同时也可以转换为指定格式的Date对象:

String dateTime1="2018-02-18 20:53:45";
String dateTime2="2018-02-18";
String dateTime3="20:53:45";
String dateTime4="2018-02-18 20:53";
 
//将不同的格式转换为Date对象
Date date1=DateUtil.parse(dateTime1);  
System.out.println("date1:"+date1.toString());
Date date2=DateUtil.parse(dateTime2);
System.out.println("date2:"+date2.toString());
Date date3=DateUtil.parse(dateTime3);
System.out.println("date3:"+date3.toString());
Date date4=DateUtil.parse(dateTime4);
System.out.println("date4:"+date4.toString());
 
//使用DateUtil.parse(String,String):Date 转换为指定格式的Date对象
Date date5=DateUtil.parse(dateTime1, "yyyy-MM-dd");
System.out.println("date5:"+date5.toString());

一般更常用的是我们需要将日期时间格式化输出,Hutool提供了一些方法实现:

使用DateUtil.formatDateTime(Date date):String 将返回“yyyy-MM-dd hh:mm:ss”格式字符串
使用DateUtil.formatDate(Date date):String 将返回“yyyy-MM-dd“格式字符串
使用DateUtil.formatTime(Date date):String将返回“hh:mm:ss“格式字符串
使用DateUtil.format(Date,String):String 将返回指定格式的字符串
开始和结束时间
Hutool可以很方便的获得某天/某月/某年的开始时刻和结束时刻:

beginOfDay(Date):Date

一天开始时刻

endOfDay(Date):Date

一天结束时刻

beginOfMonth(Date):Date

endOfMonth(Date):Date

beginOfYear(Date):Date

endOfYear(Date):Date

时间间隔
Hutool可以方便的计算时间间隔,使用DateUtil.between(Date begin,Date end,DateUnit):long计算间隔,方法有三个参数,前两个分别是开始时间和结束时间,第三个参数是DateUnit的枚举,表示差值以什么为单位。

DateUnit的取值可以是DateUnit.DAY(天),DateUnit.HOUR(小时),DateUnit.WEEK(周),DateUnit.SECOND(秒),DateUnit.MINUTE(分钟);

我们也可以将差值转为指定具体的格式,比如 XX天XX小时XX分钟XX秒 这样的格式,可以使用DateUtil.formatBetween(Date begin,Date end,Level):String 方法,有三个参数,前两个依然是开始和结束时间,第三个参数表示精确度,比如Level.SECOND表示精确到秒,即XX天XX小时XX分钟XX秒的格式。

计算年龄
用了Hutool可以瞬间计算年龄,你还需要担心什么虚岁周岁吗?不需要,Hutool说多少就是多少。我们可以使用如下方法:

年龄

age(Date begin,Date end):int

出生和去世日期计算年龄

ageOfNow(String birthday):int

计算到当前日期的年龄

ageOfNow(Date birthday):int

计算到当前日期的年龄

判断闰年
使用DateUtil.isLeapYear(in year):boolean判断是否为闰年。

DateTime
了解了DateUtil,再来看DateTime应该是很简单的,因为DateTime里面的大多数方法和DateUtil是类似的。DateTime类继承自java.util.Date,完全可以替代Date的使用并且还有其他的实用方法!何乐而不为!

首先来了解一下DateTime的构造方法:

方法一:使用new
DateTime dt=new DateTime();   //创建当前时刻

DateTime dt=new DateTime(Date date);   //使用Date对象构造

DateTime dt=new DateTime(long timeMillis);   //使用毫秒数构造

方法二:使用of()方法
DateTime dt=DateTime.of();

使用now()方法
DateTime dt=DateTime.now();          //创建当前时刻

DateTime里面还有两个非常实用的方法,就是before(Date when):boolean 和 after(Date when):boolean,它们可以判断时间的先后。

DatePattern
最后了解一下DatePattern类,这个类主要是提供了一些指定的时间日期格式(都是String类型),包括地区的区别表示:

格式化模板

DatePattern.CHINESE_DATE_PATTERN

yyyy年MM月dd日

DatePattern.NORM_DATE_PATTERN

yyyy-MM-dd

DatePattern.NORM_TIME_PATTERN

HH:mm:ss

DatePattern.NORM_DATETIME_PATTERN

yyyy-MM-dd HH:mm:ss

DatePattern.UTC_PATTERN

yyyy-MM-dd'T'HH:mm:ss'Z'

DatePattern.PURE_DATE_PATTERN

yyyyMMdd

DatePattern.PURE_TIME_PATTERN

HHmmss

DatePattern.PURE_DATETIME_PATTERN

yyyyMMddHHmmss

Hutool:时间日期工具相关推荐

  1. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  2. java时间日期工具类_java工具类--日期相关;

    日期相关 Date类 1.通常使用的是java.util包 2.导包 拿来使用 构建对象 3.通常使用无参数的构造方法 或者带long构造方法 4.Date类中常用的方法 before(); afte ...

  3. hutool日期工具类相关:获取某月所有周、某周的起止时间或所有日期、计算连续天数

    目录 前言 实现 1.获取当月的所有周 2.根据指定的第几周,获取这周的开始.结束时间 3.获取当前月某一周的所有日期 4.多个日期中,计算最大的连续天数 5.判断指定日期是否在某个范围内 前言 最近 ...

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

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

  5. java 日期时间工具_Java日期时间类工具

    Java日期时间类工具 Java日期时间类 Date类 Java提供的Date类和Calendar类用于处理日期和时间的类,包括创建日期,时间对象,获取系统当前日期,时间 等操作.但Date类无法实现 ...

  6. Java中Date日期时间的工具类

    package me.xueyao.date;import java.sql.Timestamp; import java.text.ParseException; import java.text. ...

  7. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  8. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  9. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

最新文章

  1. 阿里云yum源安装SVN失败的问题
  2. [转]自动驾驶基础--路径规划
  3. spark之3:安装部署
  4. 爬table数据_爬取NBA球员薪资数据【Python数据分析百例连载】
  5. java 蓝桥杯算法训练 未名湖边的烦恼
  6. 【MYSQL笔记】使用存储过程
  7. VM虚拟机装Windows XP系统
  8. 前端对页面中的 checked 选中状态的展示
  9. 怎样抢注到一个刚过期不久的域名?
  10. centos 基础镜像中安装失败,提示:Error: Failed to download metadata for repo ‘AppStream‘: Cannot prepare internal
  11. 无投戎之志,愿成技术届一股清流
  12. wannacry 勒索病毒_WannaCry:勒索软件尸检
  13. “东数西算”背后隐秘的玩家们
  14. 运筹说 第61期 | 整数规划经典例题讲解
  15. 在CSS布局中让Floats轻拂
  16. XR21V141x usb转串口芯片驱动添加
  17. TVS管与ESD保护二极管的区别
  18. 拒绝毒瘤:推特正试图让“回复人”闭嘴
  19. 使用VirtualLab Fusion对闪耀光栅分析
  20. x200装linux驱动下载,手把手教你在x200上安装原汁原味的mac Os x10.6系统

热门文章

  1. python打包成exe_python打包成exe有GUI工具啦
  2. python天气查询小程序加背景图_Python查询天气小程序
  3. loading窗口动画 web_loading动画
  4. Kernel Method核方法—应用与理解
  5. TensorFlow2.0:张量的数学运算
  6. Go defer实现原理剖析
  7. c++注释快捷键_JAVA编程中你一定要掌握的“快捷键”
  8. java为什么引入进程和线程_为什么要引入进程
  9. ppt 胡事民 计算机图形学_从相机标定到SLAM,极简三维视觉六小时课程视频(附PPT)...
  10. ajax 刷新output,JSF生命周期及AJAX局部刷新