JDK 8 LocalDateTime

LocalDate(獲取年月日)

  • 創建LocalDate對象
LocalDate localDate = LocalDate.of(2019, 10, 29); // 構造指定的年月日

LocalDate localDate1 = LocalDate.now(); // 獲取當前年月日
  • 獲取年、月、日、星期
// 獲取年
int year = localDate.getYear(); // 2019
int year1 = localDate.get(ChronoField.YEAR); // 2019

// 獲取月
Month month = localDate.getMonth(); // OCTOBER
int month1 = localDate.get(ChronoField.MONTH_OF_YEAR); // 10

// 獲取日
int day = localDate.getDayOfMonth(); // 29
int day1 = localDate.get(ChronoField.DAY_OF_MONTH); // 29

// 獲取星期
DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // TUESDAY
int dayOfWeek1 = localDate.get(ChronoField.DAY_OF_WEEK); // 2

LocalTime(獲取時分秒)

  • 創建LocalTime對象
LocalTime localTime = LocalTime.of(10, 07, 30); // 構造指定的時分秒

LocalTime localTime1 = LocalTime.now(); // 獲取當前時分秒
  • 獲取年、月、日、星期
// 獲取時
int hour = localTime.getHour(); // 10
int hour1 = localTime.get(ChronoField.HOUR_OF_DAY); // 10

// 獲取分
int minute = localTime.getMinute(); // 7
int minute1 = localTime.get(ChronoField.MINUTE_OF_HOUR); // 7

// 獲取秒
int second = localTime.getSecond(); // 30
int second1 = localTime.get(ChronoField.SECOND_OF_MINUTE); // 30

LocalDateTime(獲取年月日時分秒)

  • 創建LocalDateTime對象
// 獲取當前時分秒、時分秒
LocalDateTime localDateTime = LocalDateTime.now();

// 構造指定的年月日、時分秒
LocalDateTime localDateTime1 = LocalDateTime.of(2019, Month.OCTOBER, 29, 14, 30, 50);

// 根據localDate和localTime來構建LocalDateTime對象
LocalDateTime localDateTime2 = LocalDateTime.of(localDate, localTime);
LocalDateTime localDateTime3 = localDate.atTime(localTime);
LocalDateTime localDateTime4 = localTime.atDate(localDate);
  • 獲取LocalDate
LocalDate localDate = localDateTime.toLocalDate();
  • 獲取LocalTime
LocalTime localTime = localDateTime.toLocalTime();

Instant(獲取秒、毫秒)

  • 創建Instant對象
Instant instant = Instant.now();
  • 獲取秒
long currentSecond = instant.getEpochSecond();
  • 獲取毫秒
long currentMilli = instant.toEpochMilli();

修改LocalDateTime/LocalDateTime/LocalTime(修改時間)

  • 修改LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now();

// 增加一年
LocalDateTime localDateTime1 = localDateTime.plusYears(1);
LocalDateTime localDateTime2 = localDateTime.plus(1, ChronoUnit.YEARS);
// 減少一年
LocalDateTime localDateTime3 = localDateTime.minusMonths(1);
LocalDateTime localDateTime4 = localDateTime.minus(1, ChronoUnit.YEARS);
// 增加一個月
LocalDateTime localDateTime5 = localDateTime.plusMonths(1);
LocalDateTime localDateTime6 = localDateTime.plus(1,ChronoUnit.MINUTES);
// 減少一個月
LocalDateTime localDateTime7 = localDateTime.minusMonths(1);
LocalDateTime localDateTime8 = localDateTime.minus(1,ChronoUnit.MINUTES);
// 增加一天
LocalDateTime localDateTime9 = localDateTime.plusDays(1);
LocalDateTime localDateTime10 = localDateTime.plus(1,ChronoUnit.DAYS);
// 減少一天
LocalDateTime localDateTime11 = localDateTime.minusDays(1);
LocalDateTime localDateTime12 = localDateTime.minus(1,ChronoUnit.DAYS);
// 增加一小時
LocalDateTime localDateTime13 = localDateTime.plusHours(1);
LocalDateTime localDateTime14 = localDateTime.plus(1,ChronoUnit.HOURS);
// 減少一小時
LocalDateTime localDateTime15 = localDateTime.minusHours(1);
LocalDateTime localDateTime16 = localDateTime.minus(1,ChronoUnit.HOURS);
// 增加一分鐘
LocalDateTime localDateTime17 = localDateTime.plusMinutes(1);
LocalDateTime localDateTime18 = localDateTime.plus(1,ChronoUnit.MINUTES);
// 減少一分鐘
LocalDateTime localDateTime19 = localDateTime.minusMinutes(1);
LocalDateTime localDateTime20 = localDateTime.minus(1,ChronoUnit.MINUTES);
// 增加一秒
LocalDateTime localDateTime21 = localDateTime.plusSeconds(1);
LocalDateTime localDateTime22 = localDateTime.plus(1,ChronoUnit.SECONDS);
// 減少一秒
LocalDateTime localDateTime23 = localDateTime.minusSeconds(1);
LocalDateTime localDateTime24 = localDateTime.minus(1,ChronoUnit.SECONDS);
// 增加一週
LocalDateTime localDateTime25 = localDateTime.plusWeeks(1);
LocalDateTime localDateTime26 = localDateTime.plus(1,ChronoUnit.WEEKS);
// 減少一週
LocalDateTime localDateTime27 = localDateTime.minusWeeks(1);
LocalDateTime localDateTime28 = localDateTime.minus(1,ChronoUnit.WEEKS);
// 修改成2020年
LocalDateTime localDateTime29 = localDateTime.withYear(2020);
LocalDateTime localDateTime30 = localDateTime.with(ChronoField.YEAR, 2020);
// 修改成7月份
LocalDateTime localDateTime31 = localDateTime.withMonth(7);
LocalDateTime localDateTime32 = localDateTime.with(ChronoField.MONTH_OF_YEAR, 7);
// 修改成當本月5日
LocalDateTime localDateTime33 = localDateTime.withDayOfMonth(5);
LocalDateTime localDateTime34 = localDateTime.with(ChronoField.DAY_OF_MONTH, 5);
// 修改成本年100日
LocalDateTime localDateTime35 = localDateTime.withDayOfYear(100);
LocalDateTime localDateTime36 = localDateTime.with(ChronoField.DAY_OF_YEAR, 100);
// 修改成本日8點鐘
LocalDateTime localDateTime37 = localDateTime.withHour(8);
LocalDateTime localDateTime38 = localDateTime.with(ChronoField.HOUR_OF_DAY, 8);
// 修改成本小時30分鐘
LocalDateTime localDateTime39 = localDateTime.withMinute(30);
LocalDateTime localDateTime40 = localDateTime.with(ChronoField.MINUTE_OF_HOUR, 30);
// 修改成本分鐘30秒鐘
LocalDateTime localDateTime41 = localDateTime.withSecond(30);
LocalDateTime localDateTime42 = localDateTime.with(ChronoField.SECOND_OF_MINUTE, 30);
  • 修改LocalDate
LocalDate localDate = LocalDate.now();

// 增加一年
LocalDate localDate1 = localDate.plusYears(1);
LocalDate localDate2 = localDate.plus(1, ChronoUnit.YEARS);
// 減少一年
LocalDate localDate3 = localDate.minusYears(1);
LocalDate localDate4 = localDate.minus(1, ChronoUnit.YEARS);
// 增加一個月
LocalDate localDate5 = localDate.plusMonths(1);
LocalDate localDate6 = localDate.plus(1, ChronoUnit.MONTHS);
// 減少一個月
LocalDate localDate7 = localDate.minusMonths(1);
LocalDate localDate8 = localDate.minus(1, ChronoUnit.MONTHS);
// 增加一天
LocalDate localDate9 = localDate.plusDays(1);
LocalDate localDate10 = localDate.plus(1, ChronoUnit.DAYS);
// 減少一天
LocalDate localDate11 = localDate.minusDays(1);
LocalDate localDate12 = localDate.minus(1, ChronoUnit.DAYS);
// 增加一週
LocalDate localDate13 = localDate.plusWeeks(1);
LocalDate localDate14 = localDate.plus(1, ChronoUnit.WEEKS);
// 減少一週
LocalDate localDate15 = localDate.minusWeeks(1);
LocalDate localDate16 = localDate.minus(1, ChronoUnit.WEEKS);
// 修改成2020年
LocalDate localDate17 = localDate.withYear(2020);
LocalDate localDate18 = localDate.with(ChronoField.YEAR, 2020);
// 修改成7月份
LocalDate localDate19 = localDate.withMonth(7);
LocalDate localDate20 = localDate.with(ChronoField.MONTH_OF_YEAR, 7);
// 修改成本月5日
LocalDate localDate21 = localDate.withDayOfMonth(5);
LocalDate localDate22 = localDate.with(ChronoField.DAY_OF_MONTH, 5);
// 修改成本年100日
LocalDate localDate23 = localDate.withDayOfYear(100);
LocalDate localDate24 = localDate.with(ChronoField.DAY_OF_YEAR, 100);
  • 修改LocalTime
LocalTime localTime = LocalTime.now();

// 增加一小時
LocalTime localTime1 = localTime.plusHours(1);
LocalTime localTime2 = localTime.plus(1, ChronoUnit.HOURS);
// 減少一小時
LocalTime localTime3 = localTime.minusHours(1);
LocalTime localTime4 = localTime.minus(1, ChronoUnit.HOURS);
// 增加一分鐘
LocalTime localTime5 = localTime.plusMinutes(1);
LocalTime localTime6 = localTime.plus(1, ChronoUnit.MINUTES);
// 減少一分鐘
LocalTime localTime7 = localTime.minusMinutes(1);
LocalTime localTime8 = localTime.minus(1, ChronoUnit.MINUTES);
// 增加一秒
LocalTime localTime9 = localTime.plusSeconds(1);
LocalTime localTime10 = localTime.plus(1, ChronoUnit.SECONDS);
// 減少一秒
LocalTime localTime11 = localTime.minusSeconds(1);
LocalTime localTime12 = localTime.minus(1, ChronoUnit.SECONDS);
// 修改成本日8點鐘
LocalTime localTime13 = localTime.withHour(8);
LocalTime localTime14 = localTime.with(ChronoField.HOUR_OF_DAY, 8);
// 修改成本小時30分鐘
LocalTime localTime15 = localTime.withMinute(30);
LocalTime localTime16 = localTime.with(ChronoField.MINUTE_OF_HOUR, 30);
// 修改成本分鐘30秒鐘
LocalTime localTime17 = localTime.withSecond(30);
LocalTime localTime18 = localTime.with(ChronoField.SECOND_OF_MINUTE, 30);

時間格式化

  • LocalDateTime時間格式化
LocalDateTime localDateTime = LocalDateTime.now();

String s1 = localDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); // 2019-10-29T13:47:21.562

String s2 = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 自定義格式化 2019-10-29 13:47:21
  • LocalDate時間格式化
LocalDate localDate = LocalDate.now();

String s1 = localDate.format(DateTimeFormatter.BASIC_ISO_DATE); // 20191029
String s2 = localDate.format(DateTimeFormatter.ISO_LOCAL_DATE); // 2019-10-29

String s3 = localDate.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 自定義格式化 2019/10/29

解析時間

  • LocalDateTime解析時間
LocalDateTime localDateTime1 = LocalDateTime.parse("2019-10-29T13:47:21.562", DateTimeFormatter.ISO_LOCAL_DATE_TIME);

LocalDateTime localDateTime2 = LocalDateTime.parse("2019-10-29 13:47:21", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
  • LocalDate解析時間
LocalDate localDate1 = LocalDate.parse("20190910", DateTimeFormatter.BASIC_ISO_DATE); // 2019-09-10
LocalDate localDate2 = LocalDate.parse("2019-09-10", DateTimeFormatter.ISO_LOCAL_DATE); // 2019-09-10

LocalDate localDate3 = LocalDate.parse("2019/09/10", DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 自定義時間格式化類型類型 2019-09-10

Date、LocalDateTime、LocalDate、LocalTime之間的裝換

  • Date -> LocalDateTime
Date date = new Date();
Instant instant = date.toInstant(); // 時刻
ZoneId zone = ZoneId.systemDefault(); // 時區
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
  • Date -> LocalDate
Date date = new Date();
Instant instant = date.toInstant(); // 時刻
ZoneId zone = ZoneId.systemDefault(); // 時區
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalDate localDate = localDateTime.toLocalDate();
  • Date -> LocalTime
Date date = new Date();
Instant instant = date.toInstant(); // 時刻
ZoneId zone = ZoneId.systemDefault(); // 時區
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalTime localTime = localDateTime.toLocalTime();
  • LocalDateTime -> Date
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zone = ZoneId.systemDefault(); // 時區
Instant instant = localDateTime.atZone(zone).toInstant(); // 時刻
Date date = Date.from(instant);
  • LocalDate -> Date
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault(); // 時區
Instant instant = localDate.atStartOfDay().atZone(zone).toInstant(); // 時刻
Date date = Date.from(instant);
  • LocalTime -> Date
LocalTime localTime = LocalTime.now();
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
ZoneId zone = ZoneId.systemDefault(); // 時區
Instant instant = localDateTime.atZone(zone).toInstant(); // 時刻
Date date = Date.from(instant);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章