Java8 Date
2018-06-16 本文已影响16人
熬夜的猫头鹰
java8 Date
Java日期时间API(java.time.Instant)中的Instant类表示时间线上的特定时刻。 该时刻被定义为自原点(称为时期)以来的偏移量。 起源于1970年1月1日 - 00:00 - 格林威治时间(GMT)。
时间使用每天86.400秒测量,从原点向前移动。
创建Instant对象
Instant instant = Instant.now();
日期计算
- plusSeconds()
- plusMillis()
- plusNanos()
- minusSeconds()
- minusMillis()
- minusNanos()
Instant now = Instant.now();
Instant later = now.plusSeconds(3);
Instant earlier = now.minusSeconds(3);
Duration
持续时间实例是不可变的,因此一旦创建,您将无法更改其值。 但是,您可以通过计算方法基于另一个Duration对象创建新的Duration对象。 您将看到本教程的后续内容。
创建Duration
Instant first = Instant.now();
// wait some time while something happens
Instant second = Instant.now();
Duration duration = Duration.between(first, second);
时间转化
-
getNano()
-
getSeconds()
-
toNanos()
-
toMillis()
-
toMinutes()
-
toHours()
-
toDays()
计算
- plusNanos()
- plusMillis()
- plusSeconds()
- plusMinutes()
- plusHours()
- plusDays()
- minusNanos()
- minusMillis()
- minusSeconds()
- minusMinutes()
- minusHours()
- minusDays()
LocalDate
创建 LocalDate
LocalDate localDate = LocalDate.now();
LocalDate localDate2 = LocalDate.of(2015, 12, 31);
获取LocalDate 的相关数据
- getYear()
- getMonth()
- getDayOfMonth()
- getDayOfWeek()
- getDayOfYear()
LocalDate 的加减法
- plusDays()
- plusWeeks()
- plusMonths()
- plusYears()
- minusDays()
- minusWeeks()
- minusMonths()
- minusYears()
LocalTime
创建对象
LocalTime localTime = LocalTime.now();
LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);
LocalTime 获取相关信息
- getHour()
- getMinute()
- getSecond()
- getNano()
LocalTime 计算
- plusHours()
- plusMinutes()
- plusSeconds()
- plusNanos()
- minusHours()
- minusMinutes()
- minusSeconds()
- minusNanos()
LocalDateTime
创建实例
LocalDateTime localDateTime = LocalDateTime.now();
LocalDateTime localDateTime2 =
LocalDateTime.of(2015, 11, 26, 13, 55, 36, 123);
- getYear()
- getMonth()
- getDayOfMonth()
- getDayOfWeek()
- getDayOfYear()
- getHour()
- getMinute()
- getSecond()
- getNano()
计算
- plusYears()
- plusMonths()
- plusDays()
- plusHours()
- plusMinutes()
- plusSeconds()
- plusNanos()
- minusYears()
- minusMonths()
- minusDays()
- minusHours()
- minusMinutes()
- minusSeconds()
- minusNanos()
DateTimeFormatter
DateTimeFormatter类包含一组预定义(常量)实例,可以从标准日期格式解析和格式化日期。 这样可以节省定义DateTimeFormatter的日期格式的麻烦。 DateTimeFormatter类包含以下预定义实例:
BASIC_ISO_DATE
ISO_LOCAL_DATE
ISO_LOCAL_TIME
ISO_LOCAL_DATE_TIME
ISO_OFFSET_DATE
ISO_OFFSET_TIME
ISO_OFFSET_DATE_TIME
ISO_ZONED_DATE_TIME
ISO_INSTANT
ISO_DATE
ISO_TIME
ISO_DATE_TIME
ISO_ORDINAL_TIME
ISO_WEEK_DATE
RFC_1123_DATE_TIME
DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;
String formattedZonedDate = formatter.format(ZonedDateTime.now());
System.out.println("formattedZonedDate = " + formattedZonedDate);
可以使用ofpattern
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.err.println(dateTimeFormatter.format(LocalDateTime.now()));
输出
2017-05-12 16:00:41