常規使用
LocalDateTime now = LocalDateTime.now(); // 2020-01-29T14:35:51.207
int year = now.getYear(); // 2020
Month month = now.getMonth(); // JANUARY
int monthValue = now.getMonthValue(); // 1
int dayOfYear = now.getDayOfYear(); // 29
int dayOfMonth = now.getDayOfMonth(); // 29
DayOfWeek dayOfWeek = now.getDayOfWeek(); // WEDNESDAY
int dayOfWeekValue = dayOfWeek.getValue(); // 3
int hour = now.getHour(); // 14
int minute = now.getMinute(); // 35
int second = now.getSecond(); // 51
long second = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)); // 秒
long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli(); // 毫秒
LocalDateTime dateTimeFromSecond = LocalDateTime.ofInstant(Instant.ofEpochSecond(second), ZoneOffset.ofHours(8)); // 秒轉datetime
LocalDateTime dateTimeFromMilliSecond = LocalDateTime.ofInstant(Instant.ofEpochMilli(milliSecond), ZoneOffset.ofHours(8)); // 毫秒轉datetime
各種轉換
String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // datetime轉字符串
LocalDateTime dateTime = LocalDateTime.parse(format, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 字符串轉datetime
Date date = Date.from(localDateTime.toInstant(ZoneOffset.ofHours(8))); // datetime轉date
LocalDateTime dateTimeFromDate = date.toInstant().atOffset(ZoneOffset.ofHours(8)).toLocalDateTime(); // date轉datetime
自定義日期 / 日期加減
LocalDateTime dateTime = LocalDateTime.of(2020, 1, 29, 14, 35, 51); // 2020-01-29T14:35:51
LocalDateTime localDateTime1 = dateTime.minusSeconds(1); // 2020-01-29T14:35:50
LocalDateTime localDateTime2 = dateTime.minusMinutes(1); // 2020-01-29T14:34:51
LocalDateTime localDateTime3 = dateTime.minusHours(1); // 2020-01-29T13:35:51
LocalDateTime localDateTime4 = dateTime.minusDays(1); // 2020-01-28T14:35:51
LocalDateTime localDateTime5 = dateTime.minusWeeks(1); // 2020-01-22T14:35:51
LocalDateTime localDateTime6 = dateTime.minusMonths(1); // 2019-12-29T14:35:51
LocalDateTime localDateTime7 = dateTime.minusYears(1); // 2019-01-29T14:35:51
增加的爲對應的plus函數,如
dateTime.plusSeconds(1)
比較日期
LocalDateTime now = LocalDateTime.now();
LocalDateTime yesterday = LocalDateTime.now().minusDays(1);
boolean after = now.isAfter(yesterday); // true
boolean before = now.isBefore(yesterday); // false
boolean equal = now.isEqual(yesterday); // false
其他類
LocalDate日期
LocalDate dateNow = LocalDate.now();
LocalDate date = LocalDate.of(2020, 1, 29);
LocalTime時間
LocalTime timeNow = LocalTime.now();
LocalTime time = LocalTime.of(23, 59, 59);
LocalDateTime日期時間
LocalDateTime dateTimeNow = LocalDateTime.now();
LocalDateTime dateTime = LocalDateTime.of(2020, 1, 29, 23, 59, 59);
Instant時刻
long milliSecond = Instant.now().toEpochMilli(); // 毫秒時間戳
Instant instant1 = Instant.ofEpochSecond(milliSecond / 1000);
Instant instant2 = Instant.ofEpochMilli(milliSecond);
System.out.println(instant1);
System.out.println(instant2);
Duration時間差
Duration duration = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(1));
long seconds = duration.getSeconds();
long seconds2 = duration.get(ChronoUnit.SECONDS);
Duration ofDays = Duration.ofDays(1);
Duration ofHours = Duration.ofHours(1);
Duration ofMinutes = Duration.ofMinutes(1);
Duration ofSeconds = Duration.ofSeconds(1);
Period時間段
Period between = Period.between(LocalDate.of(2020, 1, 22), LocalDate.of(2020, 2, 9));
int years = between.getYears();
int months = between.getMonths();
int days = between.getDays();
Period period = Period.of(1, 2, 3);
long years = period.get(ChronoUnit.YEARS);
long months = period.get(ChronoUnit.MONTHS);
long days = period.get(ChronoUnit.DAYS);
Clock時鐘
Clock clock1 = Clock.system(ZoneOffset.ofHours(8));
Clock clock2 = Clock.systemUTC();
long millis1 = clock1.millis();
long millis2 = clock2.millis();
LocalDateTime localDateTime1 = clock1.instant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
LocalDateTime localDateTime2 = clock2.instant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime();