Hutool之时间工具——DateUtil

不想你离开。 提交于 2019-11-27 19:28:55

时间工具类DateUtil

考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装。这其中的封装主要是日期和字符串之间的转换,以及提供对日期的定位(一个月前等等)。 对于Date对象,我为了便捷,使用了一个DateTime类来代替之,继承自Date对象,主要的便利在于,覆盖了toString()方法,返回yyyy-MM-dd HH:mm:ss形式的字符串,方便在输出时的调用(例如日志记录等)。

1.nowtoday方法

返回当前时间和日期,第一个方法返回的格式为yyyy-MM-dd HH:mm:ss,第二个返回的格式为yyyy-MM-dd

2.date方法

当前时间的DateTime对象(相当于new DateTime()或者new Date()),此外还提供一个重载方法,传递long类型参数,是给定一个Unix时间戳,返回这个时间戳的时间。

3.yearAndSeason方法

根据给定的Date对象返回一个年份和季节的字符串,例如20132表示2013年第二季度,同时提供一个yearAndSeasons方法,传入两个时间对象,提供这两个时间范围内的所有季节字符串。

4.格式化日期

格式化日期时间,最常用的是formatDateTimeformatDate方法,返回yyyy-MM-dd HH:mm:ssyyyy-MM-dd格式的日期字符串,如果你需要特殊格式的格式化,则使用format方法,通过传入日期的模板来返回相应的字符串。formatHttpDate则是返回HTTP头部的时间格式,不经常用。

5.解析日期字符串

与字符串格式化相反的是解析日期字符串,常用的是parse方法,如果不提供日期的格式参数,则只能解析如下几种形式的日期字符串:

  1. yyyy-MM-dd HH:mm:ss
  2. yyyy-MM-dd
  3. HH:mm:ss
  4. yyyy-MM-dd HH:mm

如果你的日期格式不是这几种格式,则需要指定日期格式,对于以上格式还有专门的方法对应:

  1. parseDateTime
  2. parseDate
  3. ParseTime

6.日期偏移

getBeginTimeOfDaygetEndTimeOfDay分别获得给定日期当天的开始时间和结束时间,开始时间是00:00,结束时间是23:59。 yesterdaylastWeeklastMouth返回昨天、上周、上个月的日期。 如果需要指定日期做偏移,则使用offsiteDayoffsiteWeekoffsiteMonth来获得指定日期偏移天、偏移周、偏移月,指定的偏移量正数向未来偏移,负数向历史偏移。 如果以上还不能满足偏移要求,则使用offsiteDate偏移制定量,其中参数calendarField为偏移的粒度大小(小时、天、月等)使用Calendar类中的常数。

7.diff方法

返回两个日期的时间差,参数diffField定义了这个差的单位,单位的定义在DateUtil的常量中,例如DateUtil.SECOND_MS表示两个日期相差的秒数。

8.spendMsspendNt方法

这两个方法主要是用于统计花费时间,例如在某个方法开头标记了了一个时间,在结尾传入这个时间,就可以计算这个方法花费的毫秒数或者纳秒数。

9.toIntSecond方法

将给定日期转化为yyMMddHHmm类型字符串并转换为int类型,不常用。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!