一、前言
java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改。相对于以前常用的 Date 来说有很多优点,使用更方便,线程安全等。
使用 LocalDateTime 等时要求版本要在 26 及以上,所以为了兼容,LDateUtils 包含了 LocalDateTime 和 Date 相同功能的部分,如果想单独使用可以直接使用 LocalDateTimeUtil、LocalDateUtil、LocalTimeUtil、DateUtil, 所有的方法都在下面,每个方面里面都有更详细的注释。也可以通过库直接引入,引入方式如下:
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
dependencies {
implementation 'com.github.KiWiLss:LUtils:0.0.3'
}
尽量使用最新版本,如果有错误欢迎提出。
DateUtil
Github
二、LDateUtils 相关
DateUtil 和 LocalDateTimeUtil混合在一起,兼容所有版本:
- 获取当前时间相关_
getNowString :获取当前时间字符串,年月日时分秒
getNowMilli :获取当前时间的时间戳,毫秒
getNowYear :获取当前日期的年
getNowMonth :获取当前日期的月
getNowDay :获取当前日期是该月的第几天
getNowHour :获取当前是几点,二十四小时制
getNowMinute :获取当前时间的分钟
getNowSecond :获取当前时间的秒
getNowWeek :获取当前日期是该周的第几天,周日是第一天返回 1,周六最后一天返回 7
getNowDayOfYear :获取今天是今年的第几天
getNowDayOfMonth :获取今天是本月的第几天
getNowLocalDateTime :获取当前时间,只能在 26 及以上版本使用,格式 LocalDateTime
getNowLocalDate :获取当前时间,只能在 26 及以上版本使用,格式 LocalDate
getNowLocalTime :获取当前时间,只能在 26 及以上版本使用,格式 LocalDate
getNowDate :获取当前时间 Date 类型
- 获取当前时间相关_
- 判断相关
isToday :是否是今天
isLeapYear :是否是闰年
isTomorrow :是否是明天
isYesterDay :是否是昨天
isSameDay :是否是同一天
isSameWeek :是否在同一周
isBefore :前一个日期在后一个日期之前,比后一个日期小
isAfter :前面一个日期是否大于后面的日期
- 判断相关
- 获取任意时间相关
getAnyLocalDateTime :获取任意指定的时间
getYear :获取任意时间的年
getMonth :获取任意时间的月份
getDay :获取任意时间的天数
getHours :获取日期的小时,默认24小时制
getMinute :获取日期的分钟
getSecond :获取时间的秒
- 获取任意时间相关
4.计算相关
betweenTwoTime :获取两个日期相差的天数,后面日期大,返回正数,否则返回负数
getPlusYear :获取新增 number 年后的新日期,正数增加,负数减少
getPlusMonth :获取新增 number 月后的新日期,正数增加,负数减少
getPlusDay :获取新增 number 天后的新日期
getPlusHours :获取新增 number 小时后的新日期
getPlusMinutes :获取新增 number 分钟后的新日期
getPlusSecond :获取新增 number 秒后的新日期
三、LocalDateTimeUtil 相关
默认时间格式都是这种:”yyyy-MM-dd HH:mm:ss”
- 当前时间相关
getNowLocalDateTime :获取今天日期 ,返回示例2020-07-20T16:38:44.216
getNowString :获取当前时间 string 类型,默认时间格式,可自定义返回格式
getNowMilli :获取当前时间,毫秒
getNowYear :获取今天日期的年份,返回示例2020
getNowMonth :获取当前日期的月份,返回示例 7
getNowDay :返回今天日期是多少号,返回示例20
getNowHour :获取现在日期的小时,返回示例16
getNowMinute :获取当前时间的分钟,示例38
getNowSecond :返回当前时间的秒,示例20
getNowWeek :获取当前日期的星期,星期一返回1
getNowWeekOfYear :获取今天是今年的第几周
getNowWeekOfMonth :获取今天是本月的第几周,今天是 2020-07-25 返回 4
getNowDayOfYear :获取今天是今年的第多少天,示例202
getNowStart :获取当前开始时间,零点,返回示例2020-07-20T00:00
getNowEnd :获取当前结束时间
- 当前时间相关
- 获取任意时间相关
getAnyLocalDateTime :获取指定日期,传值示例 2020, 5, 4 , 4, 3, 9,返回示例2020-05-04T04:03:09
getAnyString :获取指定时间的 string 类型,,默认时间格式,可自定义返回格式
getAnyMilli :获取指定时间的 毫秒
getAnyYear :获取指定时间的年份,返回示例2020
getAnyMonth :获取指定日期的月份,返回示例8
getAnyDay :获取指定日期的天,返回示例8
getAnyWeek :获取指定日期的星期,返回示例周日返回 7
getAnyWeekOfMonth :获取任意时间在本月的第几周
getAnyStart :获取指定时间的开始时间
getAnyEnd :获取指定时间的结束时间
getFirstDayOfMonth :获取任意时间,月份的第一天的时间
getLastDayOfMonth :获取任意时间,月份的最后一天的时间
getFirstDayOfNextMonth :获取任意时间,下个月第一天的时间
getFirstDayOfNextYear :获取任意时间,下年第一天的时间
getFirstDayOfYear :获取任意时间,年份的第一天的时间
getLastDayOfYear :获取任意时间,年份的最后一天的时间
- 获取任意时间相关
- 时间类型转换相关
localDateTime2String :LocalDateTime -> string
localDateTime2Milli :LocalDateTime -----> milli 日期转毫秒
localDateTime2Second :LocalDateTime -----> second 日期转秒
localDateTime2LocalDate :LocalDateTime ----> LocalDate
localDateTime2LocalDate2:LocalDateTime ----> LocalDate
localDateTime2LocalTime :LocalDateTime ----> LocalTime
localDateTime2Date :localdatetime ------> date
string2LocalDateTime :string 类型时间 --> localdatetime
date2LocalDateTime :date ---> localdatetime
second2LocalDateTime :时间戳秒--->LocalDateTime
milli2LocalDateTime :时间戳毫秒--->LocalDateTime
localDate2LocalDateTime :LocalDate + LocalTime -----> LocalDateTime
- 时间类型转换相关
- 计算时间相关
getPlus :获取增加后的日期,可以是年,月,日,时分秒
getPlusYear :获取增加 number年后的日期
getPlusMonth :获取增加 number月后的日期
getPlusDay :获取增加 number天后的日期
getMinu :获取减少后的日期,可以是年,月,日,时,分,秒
getMinuYear :获取减少 number年后的日期
getMinuMonth :获取减少 number月后的日期
getMinuDay :获取减少 number天后的日期
betweenTwoTime :获取两个日期的差 field参数为ChronoUnit,后面的日期大,返回正数,否则返回负数
betweenTwoTime :返回两个日期的时间差,返回 Duration,可以通过它获取时间差的天,小时,分钟,秒等
betweenTwoTimeMonth :计算日期相差月数
- 计算时间相关
- 判断相关
isSameLocalDateTime :比较两个时间是否相同
isBefore :startTime 是否在 endTime 之前
isAfter :startTime 是否在 endTime 之后
isToday :判断是否是今天
isYesterday :是否是昨天
isTomorrow :是否是明天
isLeapYear :是否是闰年
isSameYear :是否是同一年
isSameMonth :是否是同一月
isSameDay :是否在同一天
isSameWeek :判断两个时间是否在同一个周内
四、LocalDateUtil 相关
默认格式:”yyyy-MM-dd”getNowLocalDate :localdata 获取当前日期年月日,返回示例2020-07-20
getNowString :获取当前日期,string 类型
getNowYear :获取当前时间的年
getNowMonth :获取当前时间的月
getNowDay :获取当前时间的号
getNowWeek :获取当前日期的星期,星期一返回1
getNowWeekOfYear :获取今天是今年的第几周
getNowWeekOfMonth :获取今天是本月的第几周
getNowDayOfYear :获取今天是今年的第多少天,示例202
getNowDayOfMonth :获取今天是几号,等同于 getNowDay
getAnyLocalDate :获取指定年月日的LocalDate
getAnyString :获取指定时间的 string 类型
getAnyYear :获取指定时间的年份,返回示例2020
getAnyMonth :获取指定日期的月份,返回示例8
getAnyDay :获取指定日期的天
getAnyWeek :获取指定日期的星期,周一返回 1
getAnyWeekOfMonth :获取任意时间在月份的第几周
getAnyWeekOfYear :获取任意时间在年份的第几周
localDate2String :LocalDate --> string
localDate2LocalDateTime :LocalDate + LocalTime -----> LocalDateTime
string2LocalDate :string --> localdate
localDate2Milli :LocalDate转时间戳
milli2LocalDate :时间戳转 LocalDate
localDate2Date :LocalDate -----> Date
date2LocalDate :Date ------> LocalDate
betweenTwoTime :比较两个日期的差,可以是年,月,日
isToday :判断是否是今天
isYesterday :判断是否是昨天
isTomorrow :判断是否是明天
isSameYear :判断是否是同一年
isSameMonth :判断是否是同一月
isSameDay :判断是否是同一天
五、LocalTimeUtil 相关
默认时间格式:HH:mm:ssgetNowLocalTime :获取当前日期的时分秒,示例16:38:44.216
getNowString :获取当前时间 String
getNowHour :获取当前时间的小时
getNowMinute :获取当前时间的分钟
getNowSecond :获取当前时间的秒
getAnyLocalTime :获取指定时分秒的 date
getAnyHour :获取任意时间的小时
getAnyMinute :获取任意时间的分钟
getAnySecond :获取任意时间的秒
localTime2String :LocalTime ------> String
getPlus :增加时间,可以是时分秒
getMinu :减少时间,可以是时分秒
modifyLocalTime :修改时间为指定时间
betweenTime :两个时间进行比较 大返回1,小就返回-1,一样就返回0
isBefore :第一个时间是否在第二个时间前面
isAfter :第一个时间是否在第二个时间后面
六、所有版本都适用DateUtil
- 判断相关
1.当前时间相关
getNowString : 获取当前日期 String 类型,默认返回格式2019-05-17 18:48:24,可自定义返回样式
getNowDate :获取当前日期 Date 类型
getNowMills :获取当前时间的时间戳(毫秒)
getNowY :获取当前年
getNowMonth :获取当前月
getNowDay :获取当前日
getNowWeek :获取当前日期是该周的第几天,周日是第一天返回 1,周六最后一天返回 7
getNowHour :获取当前日期的小时
getNowMinute :获取当前日期的分
getNowSecond :获取当前日期的秒
getDaysOfMonth :根据传入的年份和月份,判断当前月有多少天
getLastDaysOfMonth 根据传入的年份和月份,获取上一个月有多少天
2.判断相关
isLeapYear :是否是闰年
isTomorrow :是否是明天
isSameDay :判断两个时间是否是同一天
isSameWeekDates :判断两个时间是否在同一周
isSameDay :检查两个Calendar对象是否是同一天
checkIsActiveDate :判断是否是有效日期
dateCompare :比较两个日期大小
checkDateCompare :判断前后日期对比
checkDateFromTo :日期比较, 后面日期比前面的日期大
3.格式转换相关 ```java string2Millis:
- 完整的时间使用 string2Millis(“2019-05-17 18:34:16”) 结果—->1558089256000
- 不完整时间使用 string2Millis(“2019-05-17”,PATTEN_YMD) 结果—->1558022400000(相当于2019-05-17 00:00:00) string2Millis :String 转时间戳(13 位,毫秒) millis2String :时间戳转 String 类型
string2Date :String 类型转 Date date2String :Date 类型转 String millis2Date :毫秒时间戳转 Date date2Millis :Date 转时间戳
calendar2Date :将Calendar对象转换为Date对象 date2Calendar :将Date对象转换为Calendar对象
string2String :将时间格式转换成想要的格式
- 4.其他
getTimeSpan :获取两个时间的时间差( 例如比较相差多少秒: getTimeSpan(“2019-05-17 18:34:16”,”2019-05-17 18:35:16”,SEC) 结果—> -60) getFitTimeSpan :获取两个时间的时间差,可返回相差天数,小时,分钟等 getTimeSpanByNow :获取时间和当前日期的差值 getFriendlyTimeSpanByNow :获取时间与当前时间的时间差 getChineseWeek :获取汉语星期几 getUSWeek :获取英文的星期 getChineseZodiac :获取生肖 getZodiac :获取星座 getWeekFormDate :获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
getEDate :返回美国时间格式 26 Apr 2006 getEndDateOfMonth :获取一个月的最后一天 getNextDay :得到一个时间延后或前移几天的时间 getPreTime :时间前推或后推分钟 getUserDate :返回想要的时间样式 getCalendar :获取 Calendar computerDuration :计算时长 between :判断srcDate时间是否在startDate和endDate之间
getYear :获取任意时间的年 getMonth :获取任意时间的月 getDay :获取任意时间的天 getHour :获取任意时间的小时,12 小时制 getHour2 :获取任意时间的小时,24 小时制 getMinute :获取任意时间的分钟 getSecond :获取任意时间的秒 getBeforeDate :获取前一天日期 getTomorrowDate ;获取明天的日期
addYears :在date时间基础上增加amount年,原date不变,获取后几年或前几年日期 addMonth :日期加月 addDay :日期加日,得到新日期 addHour :日期加小时 addMinute :日期加分钟 addSecond :日期加秒
setYears :对date对象的年份字段设置value值,返回一个新的date对象,原date不变 setMonths :对date对象的月字段设置value值,返回一个新的date对象,原date不变 setDay :对date对象的天字段设置value值,返回一个新的date对象,原date不变 setHours :对date对象的小时字段设置value值,返回一个新的date对象,原date不变 setMinute :对date对象的分钟字段设置value值,返回一个新的date对象,原date不变 setSecond ;对date对象的秒字段设置value值,返回一个新的date对象,原date不变
thirtyDaysBeforeSpecifiedDate :获取指定日期的前30天的日期 thirtyDaysBeforeNow :获取当前日期前30天的日期 getBeforeMonth :获取当前时间的上一个月的年月 getLastDayOfMonth :返回某月的最后一天 getFirstDayOfMonth ;返回某月的第一天 getThisMonthLastDay :获取本月最后一天 getThisMonthFirstDay ;获取本月第一天 getNextWeekMonday :获取下周一日期 secondToTime :时间戳秒,返回日时分秒
dayDiff :计算两个日期之间间隔天数 daysBetween :计算两个日期之间间隔天数 getThisWeekMonday0 :本周一凌晨 getThisWeekMonday :本周一 geLastWeekMonday :上周一 getFirstTime :获取当天的最早时间00:00:00 getLatestTime :获取当天的最晚时间23:59:59 getTomorrowEnding :获得明日23点59分59秒的时间戳 getTomorrowMorning :获得明日0点0分0秒的时间戳
getDifferMonth : 获取两个日期的月数差 ```