1 开始使用
implementation 'joda-time:joda-time:2.10.10'
2 时间实例
DateTime dateTime1 = new DateTime ( 2017 , 6 , 16 , 0 , 0 , 0 , 333 ) ;
DateTime dateTime2 = new DateTime ( "2017-6-16 15:43:50" ) ;
DateTime dateTime3 = new DateTime ( 1481006233254 L) ;
DateTime dateTime4 = new DateTime ( ) ;
DateTime dateTime5 = new DateTime ( new Date ( ) ) ;
DateTime dateTime6 = new DateTime ( Calendar. getInstance ( ) ) ;
3 String -> DateTime
DateTime dateTime = new DateTime ( "2017-6-16 15:43:50" ) ;
DateTimeFormatter format = DateTimeFormat. forPattern ( "yyyy-MM-dd HH:mm:ss" ) ;
DateTime dateTime= DateTime. parse ( "2017-6-16 23:22:45" , format) ;
4 DateTime -> String
DateTimeFormatter format = DateTimeFormat. forPattern ( "yyyy-MM-dd HH:mm:ss" ) ;
String time = dateTime. toString ( format) ;
String time = dateTime. toString ( "yyyy-MM-dd HH:mm:ss" ) ;
5 时间比较
boolean b1 = dateTime. isAfterNow ( ) ;
boolean b2 = dateTime. isBeforeNow ( ) ;
boolean b3 = dateTime. isEqualNow ( ) ;
boolean b1 = dateTime. isAfter ( dateTime2) ;
boolean b2 = dateTime. isBefore ( dateTime2) ;
boolean b3 = dateTime. isEqual ( dateTime2) ;
6 设置时间 withXXX
7 增加时间 plusXXX
8 减少时间 minusXXX
9 获取时间 getXXX
10 和 jdk Date Calendar 转化
DateTime dateTime = new DateTime ( new Date ( ) ) ;
Date d1 = new Date ( dateTime. getMillis ( ) ) ;
Date d2 = dateTime. toDate ( ) ;
DateTime dateTime = new DateTime ( Calendar. getInstance ( ) ) ;
Calendar c1 = Calendar. getInstance ( ) ;
c1. setTimeInMillis ( dateTime. getMillis ( ) ) ;
Calendar c2 = dateTime. toCalendar ( Locale. getDefault ( ) ) ;
11 时区相关
dateTime. toString ( "yyyy年MM月dd日 HH:mm:ss" , Locale. CHINA) ;
DateTimeZone. setDefault ( DateTimeZone. forID ( "Asia/Tokyo" ) ) ;
DateTime dt1 = new DateTime ( ) ;
System. out. println ( dt1. toString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
DateTime dt2 = new DateTime ( DateTimeZone. forID ( "Europe/London" ) ) ;
System. out. println ( dt2. toString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
12 日期相隔
Days. daysBetween ( start, end) . getDays ( ) ;
Months. monthsBetween ( start, end) . getMonths ( ) ;
Years. yearsBetween ( start, end) . getYears ( ) ;
13 相关类
Instant instant= new Instant ( ) ;
DateTime dateTime= new DateTime ( ) ;
LocalDate localDate= new LocalDate ( ) ;
LocalTime localTime= new LocalTime ( ) ;
LocalDateTime localDateTime= new LocalDateTime ( ) ;
14 时间段
Interval:它保存了一个开始时刻和一个结束时刻,因此能够表示一段时间,并进行这段时间的相应操作
Period:它保存了一段时间,比如:6个月,3天,7小时这样的概念。可以直接创建Period,或者从Interval对象构建
Duration:它保存了一个精确的毫秒数。同样地,可以直接创建Duration,也可以从Interval对象构建
15 相关场景
nowTime. withTimeAtStartOfDay ( ) ;
nowTime. minuteOfDay ( ) . withMaximumValue ( ) ;
参考文档
使用Joda-Time优雅的处理日期时间 http://www.jianshu.com/p/efdeda608780