• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      JDK8新增的日期與時間類有多少種?常用類操作演示

      更新時間:2021年07月05日15時55分 來源:傳智教育 瀏覽次數:

      傳智教育-一樣的教育,不一樣的品質

      為了滿足更多的需求,JDK 8中新增了一個java.time包,在該包下包含了更多的日期和時間操作類,其常用類如表1所示。

      表1 JDK 8新增日期、時間常用類

      類名 功能描述
      Clock 用于獲取指定時區的當前日期、時間。
      DayOfWeek 枚舉類,定義了一周七天周一到周日的枚舉值
      Duration 表示持續時間。該類提供的ofXxx()方法用于獲取指定的時間的小時、分鐘、秒數等。
      Instant 表示一個具體時刻,可以精確到納秒。該類提供了靜態的now()方法來獲取當前時刻,提供了靜態的now(Clock clock)方法來獲取clock對應的時刻。同時還提供了一系列的plusXxx()方法來獲取當前時刻基礎上加上一段時間,以及一系列的minusXxx()方法在當前時刻基礎上減去一段時間。
      LocalDate 表示不帶時區的日期,如2018-01-27。該類提供了靜態的now()方法來獲取當前日期,提供了靜態的now(Clock clock)方法來獲取clock對應的日期。同時還提供了一系列的plusXxx()方法在當前年份基礎上加上幾年、幾月、幾日等,以及一系列的minusXxx()方法在當前年份基礎上減去幾年、幾月、幾日等。      
      LocalTime 表示不帶時區的時間,如14:49:20。該類提供了靜態的now()方法來獲取當前時間,提供了靜態的now(Clock clock)方法來獲取clock對應的時間。同時還提供了一系列的plusXxx()方法在當前年份基礎上加上幾小時、幾分、幾秒等,以及一系列的minusXxx()方法在當前年份基礎上減去幾小時、幾分、幾秒等。
      LocalDateTime 表示不帶時區的日期、時間。該類提供了靜態的now()方法來獲取當前日期、時間,提供了靜態的now(Clock clock)方法來獲取clock對應的日期、時間。同時還提供了一系列的plusXxx()方法在當前年份基礎上加上幾年、幾月、幾日、幾小時、幾分、幾秒等,以及一系列的minusXxx()方法在當前年份基礎上減去幾年、幾月、幾日、幾小時、幾分、幾秒等。
      Month 枚舉類,定義了一月到十二月的枚舉值
      MonthDay 表示月日,如--01-27。該類提供了靜態的now()方法來獲取當前月日,提供了靜態的now(Clock clock)方法來獲取clock對應的月日。
      Year 表示年,如2018。該類提供了靜態的now()方法來獲取當前年份,提供了靜態的now(Clock clock)方法來獲取clock對應的年份。同時還提供了plusYears()方法在當前年份基礎上增加幾年,以及minusYears()方法在當前年份基礎上減去幾年。
      YearMonth 表示年月,如2018-01。該類提供了靜態的now()方法來獲取當前年月,提供了靜態的now(Clock clock)方法來獲取clock對應的年月。同時還提供了plusXxx()方法在當前年月基礎上增加幾年、幾月,以及minusXxx()方法在當前年月基礎上減去幾年、幾月。
      ZoneId 表示一個時區
      ZonedDateTime 表示一個時區化的日期、時間

      了解了上述各個類的作用后,接下來通過一個具體的案例來演示這些類的用法,如文件1所示。

      文件1 Example23

           import java.time.*;
           public class Example23 {
               public static void main(String[] args) {
                   // 1、Clock的使用
                   Clock clock = Clock.systemUTC();
                   System.out.println("獲取UTC時區轉換的當前時間:" + clock.instant());
                   System.out.println("獲取UTC時區轉換的的毫秒數:" + clock.millis());
                   // 2、Duration的使用
                   Duration d = Duration.ofDays(1);
                   System.out.println("一天等于" + d.toHours() +"小時");
                   System.out.println("一天等于" + d.toMinutes() +"分鐘");
                   System.out.println("一天等于" + d.toMillis() +"秒");
                   // 3、Instant的使用
                   Instant instant = Instant.now();
                   System.out.println("獲取UTC時區的當前時間為:" + instant);
                   System.out.println("當前時間一小時后的時間為:" 
                                          + instant.plusSeconds(3600));
                   System.out.println("當前時間一小時前的時間為:" 
                                          + instant.minusSeconds(3600));
                   // 4、LocalDate的使用
                   LocalDate localDate = LocalDate.now();
                   System.out.println("從默認時區的系統時鐘獲得當前日期:" + localDate);
                   // 5、LocalTime的使用
                   LocalTime localTime = LocalTime.now();
                   System.out.println("從默認時區的系統時鐘獲取當前時間:" + localTime);
                   // 6、LocalDateTime的使用
                   LocalDateTime localDateTime = LocalDateTime.now();
                   System.out.println("從默認時區的系統時鐘獲取日期、時間:"
                                           + localDateTime);
                   LocalDateTime times = localDateTime.plusDays(1)
                                       .plusHours(3).plusMinutes(30);
                   System.out.println("當前的日期、時間加上1天3小時30分之后:" + times);
                   // 7、Year、YearMonth、MonthDay的使用
                   Year year = Year.now();
                   System.out.println("當前年份為:" + year);
                   YearMonth yearMonth = YearMonth.now();
                   System.out.println("當前年月為:" + yearMonth);
                   MonthDay monthDay = MonthDay.now();
                   System.out.println("當前月日為:" + monthDay);
                   // 8、 獲取系統默認時區
                   ZoneId zoneId = ZoneId.systemDefault();
                   System.out.println("當前系統默認時區為:" + zoneId);
               }
           }

      運行結果如圖1所示。

      圖1 運行結果

      文件1中,演示了JDK 8新增日期時間、包中類的一些用法。需要注意的是,從圖5-23可以看出,通過clock.instant()和Instant.now()獲取的當前時間與本地系統顯示時間有8個小時的時差,這是因為Instant默認使用的是UTC(Universal Time Coordinated)世界協調時間,又稱世界標準時間,UTC 提供了一種與時區無關的時間,與CST(China Standard Time)中國標準時間(北京時間)有8個小時的時差。






      猜你喜歡:

      hadoop虛擬機如何安裝和配置JDK?

      Java JDK下載和安裝教程【超級詳細】|附贈java Jdk學習資料

      JavaScript中Math常用屬性和方法有哪些?

      傳智教育Java高手班培訓

      0 分享到:
      神马影院我不卡