Jdk8常用時間類的使用

jdk8時間類的概念

jdk8時間類的來源是因爲以前的時間日期類設計的不足,所以jdk8引入了java.time包來作爲新的日期時間處理類。

  • java.time包中主要包含以下類
說明
Clock 使用時區提供對當前即時,日期和時間的訪問的時鐘
Duration 計算兩個“時間”的間隔
Instant 在時間線上的瞬間點(常用)
LocalDate 一個不可變的日期時間對象,表示日期,通常被視爲年月日(常用)
LocalTime 是一個不可變的日期時間對象,代表一個時間,通常被看作是小時 - 秒 (常用)
LocalDateTime 是一個不可變的日期時間對象,代表日期時間,通常被視爲年 - 月 - 日 - 時 - 分 - 秒(常用)
MonthDay 是一個不變的日期時間對象,代表一年和一個月的組合
OffsetDateTime 具有偏移量的日期時間的不可變表示
OffsetTime 是一個不可變的日期時間對象,表示一個時間,通常被視爲小時 - 秒 - 秒
Period 用於計算兩個“日期”的間隔
Year 代表一年的不可變日期時間對象
YearMonth 是一個不變的日期時間對象,表示一年和一個月的組合
ZonedDateTime 是具有時區的日期時間的不可變表示

Instant

  //2019-12-18T09:12:24.377Z ,我們是東八區,默認是按照本初子午線爲準所以要早8個小時
  Instant instant = Instant.now();//直接獲取當前時刻
  long l = instant.toEpochMilli();//類似與getTime()
  //根據時區返回ZoneDateTime
  OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));//原時間上加8個小時

LocalDate 和 DateTimeFormatter

  //顯示當前時間 年-月-日
  LocalDate localDate = LocalDate.now();//2019-12-18
  //適用於LocalDateTime   FormatStyle.SHORT  FormatStyle.LONG FormatStyle.MEDIUM      FormatStyle.FULL
  DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).format(localDate);//19-12-18
  DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).format(localDate);//2019年12月18日 
  DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).format(localDate);//2019-12-18
  DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).format(localDate);//2019年12月18日 星期三

LocalTime

//顯示時分秒
LocalTime localTime = LocalTime.now();//17:11:49.751

LocalDateTime 和 DateTimeFormatter

  //顯示年月日 時分秒
  LocalDateTime localDateTime = LocalDateTime.now();//2019-12-18T17:11:49.751
  LocalDateTime a = LocalDateTime.of(2020,12,12,12,12,12);//修改時間的年月日時分秒
  //適用於LocalDateTime   FormatStyle.SHORT  FormatStyle.LONG FormatStyle.MEDIUM
  DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).format(localDateTime);//19-12-18 下午5:19
  DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).format(localDateTime);//2019年12月18日 下午05時21分24秒
  DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(localDateTime);//2019-12-18 17:22:26

DateTimeFormatter

  //格式化日期格式
  DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;//默認格式
  formatter.parse("2019-12-18T17:04:32.876");//ISO resolved to 2019-12-18T17:04:32.876
  //類似SimpleDateFormat 最香的自定義格式時間方式
  DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
發佈了53 篇原創文章 · 獲贊 17 · 訪問量 7583
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章