public class LocalDateTimeUtil extends Object
LocalDateTime
工具类封装常用格式工具类
Constructor and Description |
---|
LocalDateTimeUtil() |
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 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)
修改为一天的结束时间,例如:2020-02-02 23:59:59,999
|
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)
修改为一天的结束时间,例如:2020-02-02 23:59:59,999
|
static LocalDateTime |
endOfDay(LocalDateTime time,
boolean truncateMillisecond)
修改为一天的结束时间,例如:
毫秒不归零:2020-02-02 23:59:59,999
毫秒归零:2020-02-02 23:59:59,000
|
static String |
format(LocalDate date,
DateTimeFormatter formatter)
格式化日期时间为指定格式
|
static String |
format(LocalDate date,
String format)
格式化日期时间为指定格式
|
static String |
format(LocalDateTime time,
DateTimeFormatter formatter)
格式化日期时间为指定格式
|
static String |
format(LocalDateTime time,
String format)
格式化日期时间为指定格式
|
static String |
formatNormal(LocalDate date)
格式化日期时间为yyyy-MM-dd格式
|
static String |
formatNormal(LocalDateTime time)
格式化日期时间为yyyy-MM-dd HH:mm:ss格式
|
static boolean |
isIn(ChronoLocalDateTime<?> date,
ChronoLocalDateTime<?> beginDate,
ChronoLocalDateTime<?> endDate)
当前日期是否在日期指定范围内
起始日期和结束日期可以互换 |
static boolean |
isIn(ChronoLocalDateTime<?> date,
ChronoLocalDateTime<?> beginDate,
ChronoLocalDateTime<?> endDate,
boolean includeBegin,
boolean includeEnd)
判断当前时间(默认时区)是否在指定范围内
起始时间和结束时间可以互换 通过includeBegin, includeEnd参数控制时间范围区间是否为开区间,例如:传入参数:includeBegin=true, includeEnd=false, 则本方法会判断 date ∈ (beginDate, endDate] 是否成立 |
static boolean |
isOverlap(ChronoLocalDateTime<?> realStartTime,
ChronoLocalDateTime<?> realEndTime,
ChronoLocalDateTime<?> startTime,
ChronoLocalDateTime<?> endTime)
检查两个时间段是否有时间重叠
重叠指两个时间段是否有交集,注意此方法时间段重合时如: 此方法未纠正开始时间小于结束时间 当realStartTime和realEndTime或startTime和endTime相等时,退化为判断区间是否包含点 当realStartTime和realEndTime和startTime和endTime相等时,退化为判断点与点是否相等 See 准确的区间关系参考:艾伦区间代数 |
static boolean |
isSameDay(LocalDate date1,
LocalDate date2)
比较两个日期是否为同一天
|
static boolean |
isSameDay(LocalDateTime date1,
LocalDateTime date2)
比较两个日期是否为同一天
|
static boolean |
isWeekend(LocalDate localDate)
是否为周末(周六或周日)
|
static boolean |
isWeekend(LocalDateTime localDateTime)
是否为周末(周六或周日)
|
static LocalDateTime |
now()
当前时间,默认时区
|
static LocalDateTime |
of(Date date)
Date 转LocalDateTime ,使用默认时区 |
static LocalDateTime |
of(Instant instant)
Instant 转LocalDateTime ,使用默认时区 |
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 LocalDateTime |
of(ZonedDateTime zonedDateTime)
|
static LocalDate |
ofDate(TemporalAccessor temporalAccessor)
TemporalAccessor 转LocalDate ,使用默认时区 |
static LocalDateTime |
offset(LocalDateTime time,
long number,
TemporalUnit field)
日期偏移,根据field不同加不同值(偏移会修改传入的对象)
|
static LocalDateTime |
ofUTC(Instant instant)
Instant 转LocalDateTime ,使用UTC时区 |
static LocalDateTime |
ofUTC(long epochMilli)
毫秒转
LocalDateTime ,使用UTC时区 |
static LocalDateTime |
parse(CharSequence text)
解析日期时间字符串为
LocalDateTime ,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30即 DateTimeFormatter.ISO_LOCAL_DATE_TIME |
static LocalDateTime |
parse(CharSequence text,
DateTimeFormatter formatter)
|
static LocalDateTime |
parse(CharSequence text,
String format)
解析日期时间字符串为
LocalDateTime |
static LocalDate |
parseDate(CharSequence text)
解析日期时间字符串为
LocalDate ,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30 |
static LocalDate |
parseDate(CharSequence text,
DateTimeFormatter formatter)
解析日期时间字符串为
LocalDate ,格式支持日期 |
static LocalDate |
parseDate(CharSequence text,
String format)
解析日期字符串为
LocalDate |
static long |
toEpochMilli(TemporalAccessor temporalAccessor)
TemporalAccessor 转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数) |
static int |
weekOfYear(TemporalAccessor date)
获得指定日期是所在年份的第几周,如:
如果一年的第一天是星期一,则第一周从第一天开始,没有零周
如果一年的第二天是星期一,则第一周从第二天开始,而第一天在零周
如果一年中的第4天是星期一,则第1周从第4周开始,第1至第3周在零周开始
如果一年中的第5天是星期一,则第二周从第5周开始,第1至第4周在第1周
|
public static LocalDateTime now()
LocalDateTime
public static LocalDateTime of(Instant instant)
Instant
转LocalDateTime
,使用默认时区instant
- Instant
LocalDateTime
public static LocalDateTime ofUTC(Instant instant)
Instant
转LocalDateTime
,使用UTC时区instant
- Instant
LocalDateTime
public static LocalDateTime of(ZonedDateTime zonedDateTime)
zonedDateTime
- ZonedDateTime
LocalDateTime
public static LocalDateTime of(Instant instant, ZoneId zoneId)
instant
- Instant
zoneId
- 时区LocalDateTime
public static LocalDateTime of(Instant instant, TimeZone timeZone)
instant
- Instant
timeZone
- 时区LocalDateTime
public static LocalDateTime of(long epochMilli)
LocalDateTime
,使用默认时区
注意:此方法使用默认时区,如果非UTC,会产生时间偏移
epochMilli
- 从1970-01-01T00:00:00Z开始计数的毫秒数LocalDateTime
public static LocalDateTime ofUTC(long epochMilli)
LocalDateTime
,使用UTC时区epochMilli
- 从1970-01-01T00:00:00Z开始计数的毫秒数LocalDateTime
public static LocalDateTime of(long epochMilli, ZoneId zoneId)
LocalDateTime
,根据时区不同,结果会产生时间偏移epochMilli
- 从1970-01-01T00:00:00Z开始计数的毫秒数zoneId
- 时区LocalDateTime
public static LocalDateTime of(long epochMilli, TimeZone timeZone)
LocalDateTime
,结果会产生时间偏移epochMilli
- 从1970-01-01T00:00:00Z开始计数的毫秒数timeZone
- 时区LocalDateTime
public static LocalDateTime of(Date date)
Date
转LocalDateTime
,使用默认时区date
- Date对象LocalDateTime
public static LocalDateTime of(TemporalAccessor temporalAccessor)
TemporalAccessor
转LocalDateTime
,使用默认时区temporalAccessor
- TemporalAccessor
LocalDateTime
public static LocalDate ofDate(TemporalAccessor temporalAccessor)
TemporalAccessor
转LocalDate
,使用默认时区temporalAccessor
- TemporalAccessor
LocalDate
public static LocalDateTime parse(CharSequence text)
LocalDateTime
,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30DateTimeFormatter.ISO_LOCAL_DATE_TIME
text
- 日期时间字符串LocalDateTime
public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
text
- 日期时间字符串formatter
- 日期格式化器,预定义的格式见:DateTimeFormatter
LocalDateTime
public static LocalDateTime parse(CharSequence text, String format)
LocalDateTime
text
- 日期时间字符串format
- 日期格式,类似于yyyy-MM-dd HH:mm:ss,SSSLocalDateTime
public static LocalDate parseDate(CharSequence text)
LocalDate
,仅支持yyyy-MM-dd'T'HH:mm:ss格式,例如:2007-12-03T10:15:30text
- 日期时间字符串LocalDate
public static LocalDate parseDate(CharSequence text, DateTimeFormatter formatter)
LocalDate
,格式支持日期text
- 日期时间字符串formatter
- 日期格式化器,预定义的格式见:DateTimeFormatter
LocalDate
public static LocalDate parseDate(CharSequence text, String format)
LocalDate
text
- 日期字符串format
- 日期格式,类似于yyyy-MM-ddLocalDateTime
public static String formatNormal(LocalDateTime time)
time
- LocalDateTime
public static String format(LocalDateTime time, DateTimeFormatter formatter)
time
- LocalDateTime
formatter
- 日期格式化器,预定义的格式见:DateTimeFormatter
public static String format(LocalDateTime time, String format)
time
- LocalDateTime
format
- 日期格式,类似于yyyy-MM-dd HH:mm:ss,SSSpublic static String formatNormal(LocalDate date)
date
- LocalDate
public static String format(LocalDate date, DateTimeFormatter formatter)
date
- LocalDate
formatter
- 日期格式化器,预定义的格式见:DateTimeFormatter
; 常量如: DatePattern.NORM_DATE_FORMATTER
, DatePattern.NORM_DATETIME_FORMATTER
public static String format(LocalDate date, String format)
date
- LocalDate
format
- 日期格式,类似于yyyy-MM-dd, 常量如 DatePattern.NORM_DATE_PATTERN
, DatePattern.NORM_DATETIME_PATTERN
public static LocalDateTime offset(LocalDateTime time, long number, TemporalUnit field)
time
- LocalDateTime
number
- 偏移量,正数为向后偏移,负数为向前偏移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)
time
- 日期时间public static LocalDateTime endOfDay(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 long toEpochMilli(TemporalAccessor temporalAccessor)
TemporalAccessor
转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数)temporalAccessor
- Date对象Instant
对象TemporalAccessorUtil.toEpochMilli(TemporalAccessor)
public static boolean isWeekend(LocalDateTime localDateTime)
localDateTime
- 判定的日期LocalDateTime
public static boolean isWeekend(LocalDate localDate)
localDate
- 判定的日期LocalDate
public 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(LocalDateTime date1, LocalDateTime date2)
date1
- 日期1date2
- 日期2public static boolean isSameDay(LocalDate date1, LocalDate date2)
date1
- 日期1date2
- 日期2public static boolean isIn(ChronoLocalDateTime<?> date, ChronoLocalDateTime<?> beginDate, ChronoLocalDateTime<?> endDate)
date
- 被检查的日期beginDate
- 起始日期(包含)endDate
- 结束日期(包含)public static boolean isIn(ChronoLocalDateTime<?> date, ChronoLocalDateTime<?> beginDate, ChronoLocalDateTime<?> endDate, boolean includeBegin, boolean includeEnd)
date
- 被判定的日期beginDate
- 起始时间(包含)endDate
- 结束时间(包含)includeBegin
- 时间范围是否包含起始时间includeEnd
- 时间范围是否包含结束时间Copyright © 2024. All rights reserved.