public class TimeUtil extends TemporalAccessorUtil
java7及其以下版本,使用Date工具类,
常用格式工具类| Constructor and Description |
|---|
TimeUtil() |
| Modifier and Type | Method and Description |
|---|---|
static LocalDateTime |
beginOfDay(LocalDate date)
修改为一天的开始时间,例如:2020-02-02 00:00:00,000
|
static LocalDateTime |
beginOfDay(LocalDateTime time)
修改为一天的开始时间,例如:2020-02-02 00:00:00,000
|
static LocalDate |
beginOfMonth(LocalDate date)
修改为月初的开始时间,例如:2020-02-01 00:00:00,000
|
static LocalDateTime |
beginOfMonth(LocalDateTime time)
修改为月初的开始时间,例如:2020-02-01 00:00:00,000
|
static LocalDate |
beginOfYear(LocalDate date)
修改为一年的开始时间,例如:2020-01-01 00:00:00,000
|
static LocalDateTime |
beginOfYear(LocalDateTime time)
修改为一年的开始时间,例如:2020-01-01 00:00:00,000
|
static Duration |
between(LocalDateTime startTimeInclude,
LocalDateTime endTimeExclude)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。
|
static long |
between(LocalDateTime startTimeInclude,
LocalDateTime endTimeExclude,
ChronoUnit unit)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。
|
static Period |
betweenPeriod(LocalDate startTimeInclude,
LocalDate endTimeExclude)
获取两个日期的表象时间差,如果结束时间早于开始时间,获取结果为负。
|
static Week |
dayOfWeek(LocalDate localDate)
获取
LocalDate对应的星期值 |
static LocalDateTime |
endOfDay(LocalDate date,
boolean truncateMillisecond)
修改为一天的结束时间,例如:
毫秒不归零:2020-02-02 23:59:59,999
毫秒归零:2020-02-02 23:59:59,000
|
static LocalDateTime |
endOfDay(LocalDateTime time,
boolean truncateMillisecond)
修改为一天的结束时间,例如:
毫秒不归零:2020-02-02 23:59:59,999
毫秒归零:2020-02-02 23:59:59,000
|
static LocalDate |
endOfMonth(LocalDate date)
修改为月底的结束时间
|
static LocalDateTime |
endOfMonth(LocalDateTime time,
boolean truncateMillisecond)
修改为月底的结束时间
|
static LocalDate |
endOfYear(LocalDate date)
修改为一年的结束时间
|
static LocalDateTime |
endOfYear(LocalDateTime time,
boolean truncateMillisecond)
修改为一年的结束时间
|
static Function<TemporalAccessor,String> |
formatFunc(DateTimeFormatter dateTimeFormatter)
格式化时间函数
|
static String |
formatNormal(ChronoLocalDate date)
格式化日期时间为yyyy-MM-dd格式
|
static String |
formatNormal(ChronoLocalDateTime<?> time)
格式化日期时间为yyyy-MM-dd HH:mm:ss格式
|
static boolean |
isOverlap(ChronoLocalDateTime<?> realStartTime,
ChronoLocalDateTime<?> realEndTime,
ChronoLocalDateTime<?> startTime,
ChronoLocalDateTime<?> endTime)
检查两个时间段是否有时间重叠
重叠指两个时间段是否有交集,注意此方法时间段重合时如: 此方法未纠正开始时间小于结束时间 当realStartTime和realEndTime或startTime和endTime相等时,退化为判断区间是否包含点 当realStartTime和realEndTime和startTime和endTime相等时,退化为判断点与点是否相等 See 准确的区间关系参考:艾伦区间代数 |
static boolean |
isSameDay(ChronoLocalDate date1,
ChronoLocalDate date2)
比较两个日期是否为同一天
|
static boolean |
isSameDay(ChronoLocalDateTime<?> date1,
ChronoLocalDateTime<?> date2)
比较两个日期是否为同一天
|
static boolean |
isWeekend(LocalDate localDate)
是否为周末(周六或周日)
|
static boolean |
isWeekend(LocalDateTime localDateTime)
是否为周末(周六或周日)
|
static LocalDateTime |
now()
当前时间,默认时区
|
static LocalDateTime |
of(Date date)
|
static LocalDateTime |
of(Instant instant,
TimeZone timeZone)
|
static LocalDateTime |
of(Instant instant,
ZoneId zoneId)
|
static LocalDateTime |
of(long epochMilli)
毫秒转
LocalDateTime,使用默认时区
注意:此方法使用默认时区,如果非UTC,会产生时间偏移 |
static LocalDateTime |
of(long epochMilli,
TimeZone timeZone)
毫秒转
LocalDateTime,结果会产生时间偏移 |
static LocalDateTime |
of(long epochMilli,
ZoneId zoneId)
毫秒转
LocalDateTime,根据时区不同,结果会产生时间偏移 |
static LocalDateTime |
of(TemporalAccessor temporalAccessor)
TemporalAccessor转LocalDateTime,使用默认时区 |
static LocalDate |
ofDate(TemporalAccessor temporalAccessor)
TemporalAccessor转LocalDate,使用默认时区 |
static LocalDateTime |
offset(LocalDateTime time,
long number,
TemporalUnit field)
日期偏移,根据field不同加不同值(偏移会修改传入的对象)
|
static DateTimeFormatter |
ofPattern(String pattern)
通过日期时间字符串构建
DateTimeFormatter |
static LocalDateTime |
ofUTC(Instant instant)
|
static LocalDateTime |
ofUTC(long epochMilli)
毫秒转
LocalDateTime,使用UTC时区 |
static ZonedDateTime |
ofZoned(TemporalAccessor temporalAccessor,
ZoneId zoneId)
|
static LocalDateTime |
parse(CharSequence text,
DateTimeFormatter formatter)
|
static LocalDateTime |
parse(CharSequence text,
String format)
解析日期时间字符串为
LocalDateTime |
static LocalDateTime |
parseByISO(CharSequence text)
解析日期时间字符串为
LocalDateTime,支持:
DateTimeFormatter.ISO_LOCAL_DATE_TIME yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30
yyyy-MM-dd HH:mm:ss
|
static LocalDate |
parseDate(CharSequence text,
DateTimeFormatter formatter)
解析日期时间字符串为
LocalDate,格式支持日期 |
static LocalDate |
parseDate(CharSequence text,
String format)
解析日期字符串为
LocalDate |
static LocalDate |
parseDateByISO(CharSequence text)
解析日期时间字符串为
LocalDate,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30 |
static LocalDate |
today()
当天时间,默认时区
|
static int |
weekOfYear(TemporalAccessor date)
获得指定日期是所在年份的第几周,如:
如果一年的第一天是星期一,则第一周从第一天开始,没有零周
如果一年的第二天是星期一,则第一周从第二天开始,而第一天在零周
如果一年的第4天是星期一,则第一周从第4天开始,第1至第3天在零周
如果一年的第5天是星期一,则第二周从第5天开始,第1至第4天在第一周
|
format, format, get, isIn, isIn, toEpochMilli, toInstantbetween, between, offset, toChronoUnit, toTimeUnitpublic static LocalDateTime now()
LocalDateTimepublic static LocalDate today()
LocalDateTimepublic static LocalDateTime ofUTC(Instant instant)
instant - InstantLocalDateTimepublic static LocalDateTime of(Instant instant, ZoneId zoneId)
instant - InstantzoneId - 时区,如果给定的时区与当前时区不同,会转换时间LocalDateTimepublic static LocalDateTime of(Instant instant, TimeZone timeZone)
instant - InstanttimeZone - 时区,如果给定的时区与当前时区不同,会转换时间LocalDateTimepublic static LocalDateTime of(long epochMilli)
LocalDateTime,使用默认时区
注意:此方法使用默认时区,如果非UTC,会产生时间偏移
epochMilli - 从1970-01-01T00:00:00Z开始计数的毫秒数LocalDateTimepublic static LocalDateTime ofUTC(long epochMilli)
LocalDateTime,使用UTC时区epochMilli - 从1970-01-01T00:00:00Z开始计数的毫秒数LocalDateTimepublic static LocalDateTime of(long epochMilli, ZoneId zoneId)
LocalDateTime,根据时区不同,结果会产生时间偏移epochMilli - 从1970-01-01T00:00:00Z开始计数的毫秒数zoneId - 时区LocalDateTimepublic static LocalDateTime of(long epochMilli, TimeZone timeZone)
LocalDateTime,结果会产生时间偏移epochMilli - 从1970-01-01T00:00:00Z开始计数的毫秒数timeZone - 时区LocalDateTimepublic static LocalDateTime of(Date date)
date - Date对象LocalDateTimepublic static LocalDateTime of(TemporalAccessor temporalAccessor)
TemporalAccessor转LocalDateTime,使用默认时区temporalAccessor - TemporalAccessorLocalDateTimepublic static LocalDate ofDate(TemporalAccessor temporalAccessor)
TemporalAccessor转LocalDate,使用默认时区temporalAccessor - TemporalAccessorLocalDatepublic static ZonedDateTime ofZoned(TemporalAccessor temporalAccessor, ZoneId zoneId)
temporalAccessor - TemporalAccessorzoneId - 时区IDZonedDateTimepublic static LocalDateTime parseByISO(CharSequence text)
LocalDateTime,支持:
DateTimeFormatter.ISO_LOCAL_DATE_TIME yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30text - 日期时间字符串LocalDateTimepublic static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
text - 日期时间字符串formatter - 日期格式化器,预定义的格式见:DateTimeFormatterLocalDateTimepublic static LocalDateTime parse(CharSequence text, String format)
LocalDateTimetext - 日期时间字符串format - 日期格式,类似于yyyy-MM-dd HH:mm:ss,SSSLocalDateTimepublic static LocalDate parseDateByISO(CharSequence text)
LocalDate,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30text - 日期时间字符串LocalDatepublic static LocalDate parseDate(CharSequence text, DateTimeFormatter formatter)
LocalDate,格式支持日期text - 日期时间字符串formatter - 日期格式化器,预定义的格式见:DateTimeFormatterLocalDatepublic static LocalDate parseDate(CharSequence text, String format)
LocalDatetext - 日期字符串format - 日期格式,类似于yyyy-MM-ddLocalDateTimepublic static String formatNormal(ChronoLocalDateTime<?> time)
time - LocalDateTimepublic static String formatNormal(ChronoLocalDate date)
date - LocalDatepublic static Function<TemporalAccessor,String> formatFunc(DateTimeFormatter dateTimeFormatter)
dateTimeFormatter - DateTimeFormatterpublic static LocalDateTime offset(LocalDateTime time, long number, TemporalUnit field)
time - LocalDateTimenumber - 偏移量,正数为向后偏移,负数为向前偏移field - 偏移单位,见ChronoUnit,不能为nullpublic static Duration between(LocalDateTime startTimeInclude, LocalDateTime endTimeExclude)
返回结果为Duration对象,通过调用toXXX方法返回相差单位
startTimeInclude - 开始时间(包含)endTimeExclude - 结束时间(不包含)Duration对象TemporalUtil.between(Temporal, Temporal)public static long between(LocalDateTime startTimeInclude, LocalDateTime endTimeExclude, ChronoUnit unit)
返回结果为时间差的long值
startTimeInclude - 开始时间(包括)endTimeExclude - 结束时间(不包括)unit - 时间差单位public static Period betweenPeriod(LocalDate startTimeInclude, LocalDate endTimeExclude)
比如2011年2月1日,和2021年8月11日,日相差了10天,月相差6月
startTimeInclude - 开始时间(包括)endTimeExclude - 结束时间(不包括)public static LocalDateTime beginOfDay(LocalDateTime time)
time - 日期时间public static LocalDateTime beginOfDay(LocalDate date)
date - 日期public static LocalDateTime endOfDay(LocalDateTime time, boolean truncateMillisecond)
time - 日期时间truncateMillisecond - 是否毫秒归零public static LocalDateTime endOfDay(LocalDate date, boolean truncateMillisecond)
date - 日期truncateMillisecond - 是否毫秒归零public static LocalDateTime beginOfMonth(LocalDateTime time)
time - 日期时间public static LocalDate beginOfMonth(LocalDate date)
date - 日期public static LocalDateTime endOfMonth(LocalDateTime time, boolean truncateMillisecond)
time - 日期时间truncateMillisecond - 是否毫秒归零public static LocalDate endOfMonth(LocalDate date)
date - 日期public static LocalDateTime beginOfYear(LocalDateTime time)
time - 日期时间public static LocalDate beginOfYear(LocalDate date)
date - 日期public static LocalDateTime endOfYear(LocalDateTime time, boolean truncateMillisecond)
time - 日期时间truncateMillisecond - 是否毫秒归零public static LocalDate endOfYear(LocalDate date)
date - 日期public static boolean isWeekend(LocalDateTime localDateTime)
localDateTime - 判定的日期LocalDateTimepublic static boolean isWeekend(LocalDate localDate)
localDate - 判定的日期LocalDatepublic static boolean isOverlap(ChronoLocalDateTime<?> realStartTime, ChronoLocalDateTime<?> realEndTime, ChronoLocalDateTime<?> startTime, ChronoLocalDateTime<?> endTime)
realStartTime - 第一个时间段的开始时间realEndTime - 第一个时间段的结束时间startTime - 第二个时间段的开始时间endTime - 第二个时间段的结束时间public static int weekOfYear(TemporalAccessor date)
date - 日期(LocalDate 或者 LocalDateTime等)public static boolean isSameDay(ChronoLocalDateTime<?> date1, ChronoLocalDateTime<?> date2)
date1 - 日期1date2 - 日期2public static boolean isSameDay(ChronoLocalDate date1, ChronoLocalDate date2)
date1 - 日期1date2 - 日期2public static DateTimeFormatter ofPattern(String pattern)
DateTimeFormatterpattern - 格式,如yyyy-MM-ddDateTimeFormatterCopyright © 2025. All rights reserved.