public class DateUtil extends CalendarUtil
Constructor and Description |
---|
DateUtil() |
Modifier and Type | Method and Description |
---|---|
static int |
age(Date birthday,
Date dateToCompare)
计算相对于dateToCompare的年龄,长用于计算指定生日在某年的年龄
|
static int |
ageOfNow(Date birthDay)
生日转为年龄,计算法定年龄
|
static int |
ageOfNow(String birthDay)
生日转为年龄,计算法定年龄
|
static DateTime |
beginOfDay(Date date)
获取某天的开始时间
|
static DateTime |
beginOfHour(Date date)
获取某小时的开始时间
|
static DateTime |
beginOfMinute(Date date)
获取某分钟的开始时间
|
static DateTime |
beginOfMonth(Date date)
获取某月的开始时间
|
static DateTime |
beginOfQuarter(Date date)
获取某季度的开始时间
|
static DateTime |
beginOfSecond(Date date)
获取秒级别的开始时间,即忽略毫秒部分
|
static DateTime |
beginOfWeek(Date date)
获取某周的开始时间,周一定为一周的开始时间
|
static DateTime |
beginOfWeek(Date date,
boolean isMondayAsFirstDay)
获取某周的开始时间
|
static DateTime |
beginOfYear(Date date)
获取某年的开始时间
|
static long |
between(Date beginDate,
Date endDate,
DateUnit unit)
判断两个日期相差的时长,只保留绝对值
|
static long |
between(Date beginDate,
Date endDate,
DateUnit unit,
boolean isAbs)
判断两个日期相差的时长
|
static long |
betweenDay(Date beginDate,
Date endDate,
boolean isReset)
判断两个日期相差的天数
|
static long |
betweenMonth(Date beginDate,
Date endDate,
boolean isReset)
计算两个日期相差月数
在非重置情况下,如果起始日期的天大于结束日期的天,月数要少算1(不足1个月) |
static long |
betweenMs(Date beginDate,
Date endDate)
判断两个日期相差的毫秒数
|
static long |
betweenWeek(Date beginDate,
Date endDate,
boolean isReset)
计算指定指定时间区间内的周数
|
static long |
betweenYear(Date beginDate,
Date endDate,
boolean isReset)
计算两个日期相差年数
在非重置情况下,如果起始日期的月大于结束日期的月,年数要少算1(不足1年) |
static DateTime |
ceiling(Date date,
DateField dateField)
修改日期为某个时间字段结束时间
|
static int |
compare(Date date1,
Date date2)
null 安全的日期比较,null 对象排在末尾 |
static StopWatch |
createStopWatch()
创建秒表
StopWatch ,用于对代码块的执行时间计数 |
static StopWatch |
createStopWatch(String id)
创建秒表
StopWatch ,用于对代码块的执行时间计数 |
static long |
current()
当前时间的时间戳
|
static long |
currentSeconds()
当前时间的时间戳(秒)
|
static DateTime |
date()
当前时间,转换为
DateTime 对象 |
static DateTime |
date(Calendar calendar)
|
static DateTime |
date(Date date)
|
static DateTime |
date(long date)
Long类型时间转为
DateTime 只支持毫秒级别时间戳,如果需要秒级别时间戳,请自行×1000 |
static DateTime |
date(TemporalAccessor temporalAccessor)
|
static DateTime |
dateNew(Date date)
|
static DateTime |
dateSecond()
当前时间,转换为
DateTime 对象,忽略毫秒部分 |
static int |
dayOfMonth(Date date)
获得指定日期是这个日期所在月份的第几天
|
static int |
dayOfWeek(Date date)
获得指定日期是星期几,1表示周日,2表示周一
|
static Week |
dayOfWeekEnum(Date date)
获得指定日期是星期几
|
static int |
dayOfYear(Date date)
获得指定日期是这个日期所在年的第几天
|
static DateTime |
endOfDay(Date date)
获取某天的结束时间
|
static DateTime |
endOfHour(Date date)
获取某小时的结束时间
|
static DateTime |
endOfMinute(Date date)
获取某分钟的结束时间
|
static DateTime |
endOfMonth(Date date)
获取某月的结束时间
|
static DateTime |
endOfQuarter(Date date)
获取某季度的结束时间
|
static DateTime |
endOfSecond(Date date)
获取秒级别的结束时间,即毫秒设置为999
|
static DateTime |
endOfWeek(Date date)
获取某周的结束时间,周日定为一周的结束
|
static DateTime |
endOfWeek(Date date,
boolean isSundayAsLastDay)
获取某周的结束时间
|
static DateTime |
endOfYear(Date date)
获取某年的结束时间
|
static String |
format(Date date,
DateFormat format)
根据特定格式格式化日期
|
static String |
format(Date date,
DatePrinter format)
根据特定格式格式化日期
|
static String |
format(Date date,
DateTimeFormatter format)
根据特定格式格式化日期
|
static String |
format(Date date,
String format)
根据特定格式格式化日期
|
static String |
format(LocalDateTime localDateTime,
String format)
根据特定格式格式化日期
|
static String |
formatBetween(Date beginDate,
Date endDate)
格式化日期间隔输出,精确到毫秒
|
static String |
formatBetween(Date beginDate,
Date endDate,
BetweenFormatter.Level level)
格式化日期间隔输出
|
static String |
formatBetween(long betweenMs)
格式化日期间隔输出,精确到毫秒
|
static String |
formatBetween(long betweenMs,
BetweenFormatter.Level level)
格式化日期间隔输出
|
static String |
formatChineseDate(Date date,
boolean isUppercase,
boolean withTime)
格式化为中文日期格式,如果isUppercase为false,则返回类似:2018年10月24日,否则返回二〇一八年十月二十四日
|
static String |
formatDate(Date date)
格式化日期部分(不包括时间)
格式 yyyy-MM-dd |
static String |
formatDateTime(Date date)
格式化日期时间
格式 yyyy-MM-dd HH:mm:ss |
static String |
formatHttpDate(Date date)
格式化为Http的标准日期格式
标准日期格式遵循RFC 1123规范,格式类似于:Fri, 31 Dec 1999 23:59:59 GMT |
static String |
formatLocalDateTime(LocalDateTime localDateTime)
格式化日期时间
格式 yyyy-MM-dd HH:mm:ss |
static String |
formatTime(Date date)
格式化时间
格式 HH:mm:ss |
static String |
getChineseZodiac(int year)
计算生肖,只计算1900年后出生的人
|
static String |
getZodiac(int month,
int day)
通过生日计算星座
|
static int |
hour(Date date,
boolean is24HourClock)
获得指定日期的小时数部分
|
static boolean |
isAM(Date date)
是否为上午
|
static boolean |
isExpired(Date startDate,
Date endDate,
Date checkDate)
Deprecated.
使用isIn方法
|
static boolean |
isExpired(Date startDate,
DateField dateField,
int timeLength,
Date endDate)
Deprecated.
此方法存在一定的歧义,容易产生误导,废弃。
|
static boolean |
isIn(Date date,
Date beginDate,
Date endDate)
当前日期是否在日期指定范围内
起始日期和结束日期可以互换 |
static boolean |
isLeapYear(int year)
是否闰年
|
static boolean |
isPM(Date date)
是否为下午
|
static boolean |
isSameDay(Date date1,
Date date2)
比较两个日期是否为同一天
|
static boolean |
isSameMonth(Date date1,
Date date2)
比较两个日期是否为同一月
|
static boolean |
isSameTime(Date date1,
Date date2)
是否为相同时间
此方法比较两个日期的时间戳是否相同 |
static DateTime |
lastMonth()
上个月
|
static DateTime |
lastWeek()
上周
|
static int |
lengthOfMonth(int month,
boolean isLeapYear)
获得指定月份的总天数
|
static int |
lengthOfYear(int year)
获得指定年份的总天数
|
static int |
millisecond(Date date)
获得指定日期的毫秒数部分
|
static int |
millsecond(Date date)
Deprecated.
拼写错误,请使用
millisecond(Date) |
static int |
minute(Date date)
获得指定日期的分钟数部分
例如:10:04:15.250 =》 4 |
static int |
month(Date date)
获得月份,从0开始计数
|
static Month |
monthEnum(Date date)
获得月份
|
static long |
nanosToMillis(long duration)
纳秒转毫秒
|
static double |
nanosToSeconds(long duration)
纳秒转秒,保留小数
|
static SimpleDateFormat |
newSimpleFormat(String pattern)
创建
SimpleDateFormat ,注意此对象非线程安全!此对象默认为严格格式模式,即parse时如果格式不正确会报错。 |
static SimpleDateFormat |
newSimpleFormat(String pattern,
Locale locale,
TimeZone timeZone)
创建
SimpleDateFormat ,注意此对象非线程安全!此对象默认为严格格式模式,即parse时如果格式不正确会报错。 |
static DateTime |
nextMonth()
下个月
|
static DateTime |
nextWeek()
下周
|
static String |
now()
当前时间,格式 yyyy-MM-dd HH:mm:ss
|
static DateTime |
offset(Date date,
DateField dateField,
int offset)
获取指定日期偏移指定时间后的时间,生成的偏移日期不影响原日期
|
static DateTime |
offsetDate(Date date,
DateField dateField,
int offset)
Deprecated.
please use
offset(Date, DateField, int) |
static DateTime |
offsetDay(Date date,
int offset)
偏移天
|
static DateTime |
offsetHour(Date date,
int offset)
偏移小时
|
static DateTime |
offsetMillisecond(Date date,
int offset)
偏移毫秒数
|
static DateTime |
offsetMinute(Date date,
int offset)
偏移分钟
|
static DateTime |
offsetMonth(Date date,
int offset)
偏移月
|
static DateTime |
offsetSecond(Date date,
int offset)
偏移秒数
|
static DateTime |
offsetWeek(Date date,
int offset)
偏移周
|
static DateTime |
parse(CharSequence dateCharSequence)
将日期字符串转换为
DateTime 对象,格式:yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss yyyy.MM.dd HH:mm:ss yyyy年MM月dd日 HH时mm分ss秒 yyyy-MM-dd yyyy/MM/dd yyyy.MM.dd HH:mm:ss HH时mm分ss秒 yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss.SSS yyyyMMddHHmmss yyyyMMddHHmmssSSS yyyyMMdd EEE, dd MMM yyyy HH:mm:ss z EEE MMM dd HH:mm:ss zzz yyyy yyyy-MM-dd'T'HH:mm:ss'Z' yyyy-MM-dd'T'HH:mm:ss.SSS'Z' yyyy-MM-dd'T'HH:mm:ssZ yyyy-MM-dd'T'HH:mm:ss.SSSZ |
static DateTime |
parse(CharSequence dateStr,
DateFormat dateFormat)
构建DateTime对象
|
static DateTime |
parse(CharSequence dateStr,
DateParser parser)
构建DateTime对象
|
static DateTime |
parse(CharSequence dateStr,
DateTimeFormatter formatter)
构建DateTime对象
|
static DateTime |
parse(CharSequence dateStr,
String format)
将特定格式的日期转换为Date对象
|
static DateTime |
parse(CharSequence dateStr,
String format,
Locale locale)
将特定格式的日期转换为Date对象
|
static DateTime |
parse(String str,
String... parsePatterns)
|
static DateTime |
parseCST(CharSequence cstString)
解析CST时间,格式:
EEE MMM dd HH:mm:ss z yyyy(例如:Wed Aug 01 00:00:00 CST 2012) |
static DateTime |
parseDate(CharSequence dateString)
解析日期字符串,忽略时分秒,支持的格式包括:
|
static DateTime |
parseDateTime(CharSequence dateString)
解析日期时间字符串,格式支持:
|
static LocalDateTime |
parseLocalDateTime(CharSequence dateStr)
构建LocalDateTime对象
格式:yyyy-MM-dd HH:mm:ss |
static LocalDateTime |
parseLocalDateTime(CharSequence dateStr,
String format)
构建LocalDateTime对象
|
static DateTime |
parseTime(CharSequence timeString)
解析时间,格式HH:mm:ss,日期部分默认为1970-01-01
|
static DateTime |
parseTimeToday(CharSequence timeString)
解析时间,格式HH:mm 或 HH:mm:ss,日期默认为今天
|
static DateTime |
parseUTC(String utcString)
解析UTC时间,格式:
yyyy-MM-dd'T'HH:mm:ss'Z' yyyy-MM-dd'T'HH:mm:ss.SSS'Z' yyyy-MM-dd'T'HH:mm:ssZ yyyy-MM-dd'T'HH:mm:ss.SSSZ |
static int |
quarter(Date date)
获得指定日期所属季度,从1开始计数
|
static Quarter |
quarterEnum(Date date)
获得指定日期所属季度
|
static DateRange |
range(Date start,
Date end,
DateField unit)
创建日期范围生成器
|
static List<DateTime> |
rangeToList(Date start,
Date end,
DateField unit)
创建日期范围生成器
|
static DateTime |
round(Date date,
DateField dateField)
修改日期为某个时间字段四舍五入时间
|
static int |
second(Date date)
获得指定日期的秒数部分
|
static String |
secondToTime(int seconds)
秒数转为时间格式(HH:mm:ss)
参考:https://github.com/iceroot |
static long |
spendMs(long preTime)
计时,常用于记录某段代码的执行时间,单位:毫秒
|
static long |
spendNt(long preTime)
计时,常用于记录某段代码的执行时间,单位:纳秒
|
static int |
thisDayOfMonth() |
static int |
thisDayOfWeek() |
static Week |
thisDayOfWeekEnum() |
static int |
thisHour(boolean is24HourClock) |
static int |
thisMillisecond() |
static int |
thisMillsecond()
Deprecated.
拼写错误,请使用
thisMillisecond() |
static int |
thisMinute() |
static int |
thisMonth() |
static Month |
thisMonthEnum() |
static int |
thisSecond() |
static int |
thisWeekOfMonth() |
static int |
thisWeekOfYear() |
static int |
thisYear() |
static TimeInterval |
timer()
计时器
计算某个过程花费的时间,精确到毫秒 |
static TimeInterval |
timer(boolean isNano)
计时器
计算某个过程花费的时间,精确到毫秒 |
static int |
timeToSecond(String timeStr)
HH:mm:ss 时间格式字符串转为秒数
参考:https://github.com/iceroot |
static String |
today()
当前日期,格式 yyyy-MM-dd
|
static Instant |
toInstant(Date date)
Date对象转换为
Instant 对象 |
static Instant |
toInstant(TemporalAccessor temporalAccessor)
Date对象转换为
Instant 对象 |
static int |
toIntSecond(Date date)
格式化成yyMMddHHmm后转换为int型
|
static LocalDateTime |
toLocalDateTime(Date date)
Date 转换为 LocalDateTime ,使用系统默认时区 |
static LocalDateTime |
toLocalDateTime(Instant instant)
Instant 转换为 LocalDateTime ,使用系统默认时区 |
static DateTime |
tomorrow()
明天
|
static DateTime |
truncate(Date date,
DateField dateField)
修改日期为某个时间字段起始时间
|
static int |
weekCount(Date start,
Date end)
Deprecated.
|
static int |
weekOfMonth(Date date)
获得指定日期是所在月份的第几周
|
static int |
weekOfYear(Date date)
获得指定日期是所在年份的第几周
此方法返回值与一周的第一天有关,比如: 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2) 如果一周的第一天为周一,那这天是第一周(返回1) 跨年的那个星期得到的结果总是1 |
static int |
year(Date date)
获得年的部分
|
static String |
yearAndQuarter(Date date)
获得指定日期年份和季节
格式:[20131]表示2013年第一季度 |
static LinkedHashSet<String> |
yearAndQuarter(Date startDate,
Date endDate)
获得指定日期区间内的年份和季节
|
static DateTime |
yesterday()
昨天
|
age, age, beginOfDay, beginOfHour, beginOfMinute, beginOfMonth, beginOfQuarter, beginOfSecond, beginOfWeek, beginOfWeek, beginOfYear, calendar, calendar, calendar, ceiling, compare, endOfDay, endOfHour, endOfMinute, endOfMonth, endOfQuarter, endOfSecond, endOfWeek, endOfWeek, endOfYear, formatChineseDate, getBeginValue, getBeginValue, getEndValue, getEndValue, isAM, isPM, isSameDay, isSameInstant, isSameMonth, parseByPatterns, parseByPatterns, parseByPatterns, round, toInstant, toLocalDateTime, truncate, yearAndQuarter, yearAndQuarter
public static DateTime date(Date date)
date
- Long类型Date(Unix时间戳)public static DateTime dateNew(Date date)
date
- Date对象DateTime
对象public static DateTime date(long date)
DateTime
date
- Long类型Date(Unix时间戳)public static DateTime date(TemporalAccessor temporalAccessor)
temporalAccessor
- TemporalAccessor
public static long current()
public static long currentSeconds()
public static String now()
public static String today()
public static int year(Date date)
date
- 日期public static int quarter(Date date)
date
- 日期public static Quarter quarterEnum(Date date)
date
- 日期public static int month(Date date)
date
- 日期public static int weekOfYear(Date date)
date
- 日期DateTime.setFirstDayOfWeek(Week)
public static int weekOfMonth(Date date)
date
- 日期public static int dayOfMonth(Date date)
date
- 日期public static int dayOfYear(Date date)
date
- 日期public static int dayOfWeek(Date date)
date
- 日期public static Week dayOfWeekEnum(Date date)
date
- 日期Week
public static int hour(Date date, boolean is24HourClock)
date
- 日期is24HourClock
- 是否24小时制public static int minute(Date date)
date
- 日期public static int second(Date date)
date
- 日期@Deprecated public static int millsecond(Date date)
millisecond(Date)
date
- 日期public static int millisecond(Date date)
date
- 日期public static boolean isAM(Date date)
date
- 日期public static boolean isPM(Date date)
date
- 日期public static int thisYear()
public static int thisMonth()
public static int thisWeekOfYear()
public static int thisWeekOfMonth()
public static int thisDayOfMonth()
public static int thisDayOfWeek()
public static int thisHour(boolean is24HourClock)
is24HourClock
- 是否24小时制public static int thisMinute()
public static int thisSecond()
@Deprecated public static int thisMillsecond()
thisMillisecond()
public static int thisMillisecond()
public static String yearAndQuarter(Date date)
date
- 日期public static LinkedHashSet<String> yearAndQuarter(Date startDate, Date endDate)
startDate
- 起始日期(包含)endDate
- 结束日期(包含)public static String formatLocalDateTime(LocalDateTime localDateTime)
localDateTime
- 被格式化的日期public static String format(LocalDateTime localDateTime, String format)
localDateTime
- 被格式化的日期format
- 日期格式,常用格式见: DatePattern
public static String format(Date date, String format)
date
- 被格式化的日期format
- 日期格式,常用格式见: DatePattern
public static String format(Date date, DatePrinter format)
date
- 被格式化的日期format
- DatePrinter
或 FastDateFormat
public static String format(Date date, DateFormat format)
date
- 被格式化的日期format
- SimpleDateFormat
public static String format(Date date, DateTimeFormatter format)
date
- 被格式化的日期format
- SimpleDateFormat
public static String formatDateTime(Date date)
date
- 被格式化的日期public static String formatDate(Date date)
date
- 被格式化的日期public static String formatTime(Date date)
date
- 被格式化的日期public static String formatHttpDate(Date date)
date
- 被格式化的日期public static String formatChineseDate(Date date, boolean isUppercase, boolean withTime)
date
- 被格式化的日期isUppercase
- 是否采用大写形式withTime
- 是否包含时间部分public static LocalDateTime parseLocalDateTime(CharSequence dateStr)
dateStr
- 时间字符串(带格式)public static LocalDateTime parseLocalDateTime(CharSequence dateStr, String format)
dateStr
- 时间字符串(带格式)format
- 使用DatePattern
定义的格式public static DateTime parse(CharSequence dateStr, DateFormat dateFormat)
dateStr
- Date字符串dateFormat
- 格式化器 SimpleDateFormat
public static DateTime parse(CharSequence dateStr, DateParser parser)
dateStr
- Date字符串parser
- 格式化器,FastDateFormat
public static DateTime parse(CharSequence dateStr, DateTimeFormatter formatter)
dateStr
- Date字符串formatter
- 格式化器,DateTimeFormatter
public static DateTime parse(CharSequence dateStr, String format)
dateStr
- 特定格式的日期format
- 格式,例如yyyy-MM-ddpublic static DateTime parse(CharSequence dateStr, String format, Locale locale)
dateStr
- 特定格式的日期format
- 格式,例如yyyy-MM-ddlocale
- 区域信息public static DateTime parse(String str, String... parsePatterns) throws DateException
str
- 日期时间字符串,非空parsePatterns
- 需要尝试的日期时间格式数组,非空, 见SimpleDateFormatIllegalArgumentException
- if the date string or pattern array is nullDateException
- if none of the date patterns were suitablepublic static DateTime parseDateTime(CharSequence dateString)
yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss yyyy.MM.dd HH:mm:ss yyyy年MM月dd日 HH:mm:ss
dateString
- 标准形式的时间字符串public static DateTime parseDate(CharSequence dateString)
yyyy-MM-dd yyyy/MM/dd yyyy.MM.dd yyyy年MM月dd日
dateString
- 标准形式的日期字符串public static DateTime parseTime(CharSequence timeString)
timeString
- 标准形式的日期字符串public static DateTime parseTimeToday(CharSequence timeString)
timeString
- 标准形式的日期字符串public static DateTime parseUTC(String utcString)
utcString
- UTC时间public static DateTime parseCST(CharSequence cstString)
cstString
- UTC时间public static DateTime parse(CharSequence dateCharSequence)
DateTime
对象,格式:dateCharSequence
- 日期字符串public static DateTime beginOfSecond(Date date)
date
- 日期DateTime
public static DateTime endOfSecond(Date date)
date
- 日期DateTime
public static DateTime beginOfHour(Date date)
date
- 日期DateTime
public static DateTime endOfHour(Date date)
date
- 日期DateTime
public static DateTime beginOfMinute(Date date)
date
- 日期DateTime
public static DateTime endOfMinute(Date date)
date
- 日期DateTime
public static DateTime beginOfDay(Date date)
date
- 日期DateTime
public static DateTime endOfDay(Date date)
date
- 日期DateTime
public static DateTime beginOfWeek(Date date)
date
- 日期DateTime
public static DateTime beginOfWeek(Date date, boolean isMondayAsFirstDay)
date
- 日期isMondayAsFirstDay
- 是否周一做为一周的第一天(false表示周日做为第一天)DateTime
public static DateTime endOfWeek(Date date)
date
- 日期DateTime
public static DateTime endOfWeek(Date date, boolean isSundayAsLastDay)
date
- 日期isSundayAsLastDay
- 是否周日做为一周的最后一天(false表示周六做为最后一天)DateTime
public static DateTime beginOfMonth(Date date)
date
- 日期DateTime
public static DateTime endOfMonth(Date date)
date
- 日期DateTime
public static DateTime beginOfQuarter(Date date)
date
- 日期DateTime
public static DateTime endOfQuarter(Date date)
date
- 日期DateTime
public static DateTime beginOfYear(Date date)
date
- 日期DateTime
public static DateTime endOfYear(Date date)
date
- 日期DateTime
public static DateTime yesterday()
public static DateTime tomorrow()
public static DateTime lastWeek()
public static DateTime nextWeek()
public static DateTime lastMonth()
public static DateTime nextMonth()
public static DateTime offsetMillisecond(Date date, int offset)
date
- 日期offset
- 偏移毫秒数,正数向未来偏移,负数向历史偏移public static DateTime offsetSecond(Date date, int offset)
date
- 日期offset
- 偏移秒数,正数向未来偏移,负数向历史偏移public static DateTime offsetMinute(Date date, int offset)
date
- 日期offset
- 偏移分钟数,正数向未来偏移,负数向历史偏移public static DateTime offsetHour(Date date, int offset)
date
- 日期offset
- 偏移小时数,正数向未来偏移,负数向历史偏移public static DateTime offsetDay(Date date, int offset)
date
- 日期offset
- 偏移天数,正数向未来偏移,负数向历史偏移public static DateTime offsetWeek(Date date, int offset)
date
- 日期offset
- 偏移周数,正数向未来偏移,负数向历史偏移public static DateTime offsetMonth(Date date, int offset)
date
- 日期offset
- 偏移月数,正数向未来偏移,负数向历史偏移public static DateTime offset(Date date, DateField dateField, int offset)
date
- 基准日期dateField
- 偏移的粒度大小(小时、天、月等)DateField
offset
- 偏移量,正数为向后偏移,负数为向前偏移@Deprecated public static DateTime offsetDate(Date date, DateField dateField, int offset)
offset(Date, DateField, int)
date
- 基准日期dateField
- 偏移的粒度大小(小时、天、月等)DateField
offset
- 偏移量,正数为向后偏移,负数为向前偏移public static long between(Date beginDate, Date endDate, DateUnit unit)
beginDate
- 起始日期endDate
- 结束日期unit
- 相差的单位:相差 天DateUnit.DAY
、小时DateUnit.HOUR
等public static long between(Date beginDate, Date endDate, DateUnit unit, boolean isAbs)
beginDate
- 起始日期endDate
- 结束日期unit
- 相差的单位:相差 天DateUnit.DAY
、小时DateUnit.HOUR
等isAbs
- 日期间隔是否只保留绝对值正数public static long betweenMs(Date beginDate, Date endDate)
beginDate
- 起始日期endDate
- 结束日期public static long betweenDay(Date beginDate, Date endDate, boolean isReset)
有时候我们计算相差天数的时候需要忽略时分秒。 比如:2016-02-01 23:59:59和2016-02-02 00:00:00相差一秒 如果isReset为false
相差天数为0。 如果isReset为true
相差天数将被计算为1
beginDate
- 起始日期endDate
- 结束日期isReset
- 是否重置时间为起始时间public static long betweenWeek(Date beginDate, Date endDate, boolean isReset)
beginDate
- 开始时间endDate
- 结束时间isReset
- 是否重置时间为起始时间public static long betweenMonth(Date beginDate, Date endDate, boolean isReset)
beginDate
- 起始日期endDate
- 结束日期isReset
- 是否重置时间为起始时间(重置天时分秒)public static long betweenYear(Date beginDate, Date endDate, boolean isReset)
beginDate
- 起始日期endDate
- 结束日期isReset
- 是否重置时间为起始时间(重置月天时分秒)public static String formatBetween(Date beginDate, Date endDate, BetweenFormatter.Level level)
beginDate
- 起始日期endDate
- 结束日期level
- 级别,按照天、小时、分、秒、毫秒分为5个等级public static String formatBetween(Date beginDate, Date endDate)
beginDate
- 起始日期endDate
- 结束日期public static String formatBetween(long betweenMs, BetweenFormatter.Level level)
betweenMs
- 日期间隔level
- 级别,按照天、小时、分、秒、毫秒分为5个等级public static String formatBetween(long betweenMs)
betweenMs
- 日期间隔public static boolean isIn(Date date, Date beginDate, Date endDate)
date
- 被检查的日期beginDate
- 起始日期endDate
- 结束日期public static boolean isSameTime(Date date1, Date date2)
date1
- 日期1date2
- 日期2public static boolean isSameDay(Date date1, Date date2)
date1
- 日期1date2
- 日期2public static boolean isSameMonth(Date date1, Date date2)
date1
- 日期1date2
- 日期2public static long spendNt(long preTime)
preTime
- 之前记录的时间public static long spendMs(long preTime)
preTime
- 之前记录的时间public static int toIntSecond(Date date)
date
- 日期@Deprecated public static int weekCount(Date start, Date end)
betweenWeek(Date, Date, boolean)
start
- 开始时间end
- 结束时间public static TimeInterval timer()
public static TimeInterval timer(boolean isNano)
isNano
- 是否使用纳秒计数,false则使用毫秒public static StopWatch createStopWatch()
StopWatch
,用于对代码块的执行时间计数
使用方法如下:
StopWatch stopWatch = DateUtil.createStopWatch(); // 任务1 stopWatch.start("任务一"); Thread.sleep(1000); stopWatch.stop(); // 任务2 stopWatch.start("任务一"); Thread.sleep(2000); stopWatch.stop(); // 打印出耗时 Console.log(stopWatch.prettyPrint());
StopWatch
public static StopWatch createStopWatch(String id)
StopWatch
,用于对代码块的执行时间计数
使用方法如下:
StopWatch stopWatch = DateUtil.createStopWatch("任务名称"); // 任务1 stopWatch.start("任务一"); Thread.sleep(1000); stopWatch.stop(); // 任务2 stopWatch.start("任务一"); Thread.sleep(2000); stopWatch.stop(); // 打印出耗时 Console.log(stopWatch.prettyPrint());
id
- 用于标识秒表的唯一IDStopWatch
public static int ageOfNow(String birthDay)
birthDay
- 生日,标准日期字符串public static int ageOfNow(Date birthDay)
birthDay
- 生日public static boolean isLeapYear(int year)
year
- 年public static int age(Date birthday, Date dateToCompare)
birthday
- 生日dateToCompare
- 需要对比的日期@Deprecated public static boolean isExpired(Date startDate, DateField dateField, int timeLength, Date endDate)
startDate
- 开始时间dateField
- 时间单位timeLength
- 实际经过时长endDate
- 被比较的时间,即有效期的截止时间。如果经过时长后的时间晚于截止时间,就表示过期@Deprecated public static boolean isExpired(Date startDate, Date endDate, Date checkDate)
以商品为例,startDate即生产日期,endDate即保质期的截止日期,checkDate表示在何时检查是否过期(一般为当前时间)
endDate和startDate的差值即为保质期(按照毫秒计),checkDate和startDate的差值即为实际经过的时长,实际时长大于保质期表示超时。
startDate
- 开始时间endDate
- 被比较的时间,即有效期的截止时间。如果经过时长后的时间晚于被检查的时间,就表示过期checkDate
- 检查时间,可以是当前时间,既public static int timeToSecond(String timeStr)
timeStr
- 字符串时分秒(HH:mm:ss)格式public static String secondToTime(int seconds)
seconds
- 需要转换的秒数public static DateRange range(Date start, Date end, DateField unit)
start
- 起始日期时间end
- 结束日期时间unit
- 步进单位DateRange
public static List<DateTime> rangeToList(Date start, Date end, DateField unit)
start
- 起始日期时间end
- 结束日期时间unit
- 步进单位DateRange
public static String getZodiac(int month, int day)
month
- 月,从0开始计数day
- 天public static String getChineseZodiac(int year)
year
- 农历年public static int compare(Date date1, Date date2)
null
安全的日期比较,null
对象排在末尾date1
- 日期1date2
- 日期2public static long nanosToMillis(long duration)
duration
- 时长public static double nanosToSeconds(long duration)
duration
- 时长public static Instant toInstant(Date date)
Instant
对象date
- Date对象Instant
对象public static Instant toInstant(TemporalAccessor temporalAccessor)
Instant
对象temporalAccessor
- Date对象Instant
对象public static LocalDateTime toLocalDateTime(Instant instant)
Instant
转换为 LocalDateTime
,使用系统默认时区instant
- Instant
LocalDateTime
LocalDateTimeUtil.of(Instant)
public static LocalDateTime toLocalDateTime(Date date)
Date
转换为 LocalDateTime
,使用系统默认时区date
- Date
LocalDateTime
LocalDateTimeUtil.of(Date)
public static int lengthOfYear(int year)
year
- 年份public static int lengthOfMonth(int month, boolean isLeapYear)
month
- 年份isLeapYear
- 是否闰年public static SimpleDateFormat newSimpleFormat(String pattern)
SimpleDateFormat
,注意此对象非线程安全!pattern
- 表达式SimpleDateFormat
public static SimpleDateFormat newSimpleFormat(String pattern, Locale locale, TimeZone timeZone)
SimpleDateFormat
,注意此对象非线程安全!pattern
- 表达式locale
- Locale
,null
表示默认timeZone
- TimeZone
,null
表示默认SimpleDateFormat
Copyright © 2021. All rights reserved.