时间和字符串格式之间的转换,以及时间差的计算方法
1、计算时间差
方法一:
LocalDateTime now = LocalDateTime. now ( ) ;
LocalDateTime end = LocalDateTime. now ( ) ;
Duration duration = Duration. between ( now, end) ;
long days = duration. toDays ( ) ;
long hours = duration. toHours ( ) ;
long minutes = duration. toMinutes ( ) ;
long millis = duration. toMillis ( ) ;
long nanos = duration. toNanos ( ) ;
方法二:
final LocalDateTime fromDate = LocalDateTime. now ( ) ;
final LocalDateTime toDate = LocalDateTime. now ( ) . plusHours ( 56 ) ;
long minutes = ChronoUnit. MINUTES. between ( fromDate, toDate) ;
long hours = ChronoUnit. HOURS. between ( fromDate, toDate) ;
2、时间和字符串格式之间的转换
2.1、String转LocalDateTime
String str = "1986-04-08 12:30" ;
DateTimeFormatter formatter = DateTimeFormatter. ofPattern ( "yyyy-MM-dd HH:mm" ) ;
LocalDateTime dateTime = LocalDateTime. parse ( str, formatter) ;
2.2、LocalDateTime转String
DateTimeFormatter formatter = DateTimeFormatter. ofPattern ( "yyyy-MM-dd HH:mm" ) ;
LocalDateTime dateTime = LocalDateTime. of ( 1986 , Month. APRIL, 8 , 12 , 30 ) ;
String formattedDateTime = dateTime. format ( formatter) ;
2.3、将LocalDateTime转换为时区ISO 8601字符串
LocalDateTime ldt = LocalDateTime. now ( ) ;
ZonedDateTime zdt = ldt. atZone ( ZoneOffset. UTC) ;
String iso8601 = zdt. toString ( ) ;
2.4、将ISO 8601字符串转换回LocalDateTime
String iso8601 = "2016-02-14T18:32:04.150Z" ;
ZonedDateTime zdt = ZonedDateTime. parse ( iso8601) ;
LocalDateTime ldt = zdt. toLocalDateTime ( ) ;