Java时间处理
Java8新增的时间处理API
常用时间处理方法的问题
java.util.Date
和java.util.Calendar
不是线程安全的类SimpleDateFormat
也是非线程安全的类Calendar
获取月份时需要计算,因为月份从0开始
日期/时间类
-
LocalDate
与LocalTime
LocalDate
类表示一个具体的日期,但不包含具体时间,也不包含时区信息,LocalTime
表示一个具体的时间LocalDate localDate = LocalDate.of(2017, 1, 4); // 初始化一个日期:2017-01-04 LocalTime localTime = LocalTime.of(17, 23, 52); // 初始化一个时间:17:23:52
LocalDateTime
上述两个类的结合体
LocalDateTime ldt1 = LocalDateTime.of(2017, Month.JANUARY, 4, 17, 23, 52);
Instant
Instant表示一个时间戳,精确到纳秒
Instant instant = Instant.ofEpochSecond(120, 100000); //参数:seconds表示从1970-01-01 00:00:00开始到现在的秒数,nanos表示纳秒部分(nanos的值不会超过999,999,999)
Duration
Duration表示一个时间段,精确到纳秒
LocalDateTime from = LocalDateTime.of(2017, Month.JANUARY, 5, 10, 7, 0); // 2017-01-05 10:07:00 LocalDateTime to = LocalDateTime.of(2017, Month.FEBRUARY, 5, 10, 7, 0); // 2017-02-05 10:07:00 Duration duration = Duration.between(from, to); // 表示从 2017-01-05 10:07:00 到 2017-02-05 10:07:00 这段时间
日期格式化
DateTimeFormatter
类处理日期格式化java.time.ZoneId
类处理时区
原文地址:https://blog.51cto.com/11854036/2433438
时间: 2024-10-09 01:45:00