java8中的Date、DateTime、Instant
LocalDate
含有年、月、日
LocalDate.of(2014, 1, 20) //或 LocalDate.of(2014, Month.JANUARY, 20)
=> 2014-1-20
LocalTime
仅含有小时、分钟、秒、纳秒
LocalTime.of(3, 30, 20)
=> 03:30:20
LocalDateTime
结合了LocalDate和LocalTime
LocalDateTime.of(2014, 1, 20, 3, 30, 20)
=> 2014-01-20T03:30:20
ZoneDateTime
含有时区信息的时间
ZonedDateTime.of(LocalDateTime.of(2014, 1, 20, 3, 30, 20), ZoneId.of("+08"));
=> 2014-01-20T03:30:20+08:00
Instant
用long表示从1970-1-1 00:00:00到现在的nanosecond
Instant.now()// 获取当前时间
=> 2014-07-23T14:40:41.487Z
上面的类都提供了争对时区的操作:
Instant.now().atOffset(ZoneOffset.ofHours(8))// 获取北京时间
2014-07-23T22:40:41.486+08:00
重构:
java.sql.Timestamp:
timestamp.toLocalDateTime()
timestamp.toInstant()
网友评论