<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java `ZonedDateTime`類 > 原文: [https://howtodoinjava.com/java/date-time/zoneddatetime-class/](https://howtodoinjava.com/java/date-time/zoneddatetime-class/) [Java 8 中引入](https://howtodoinjava.com/java8/date-and-time-api-changes-in-java-8-lambda/)的`java.time.ZonedDateTime`類表示 **ISO-8601** 日歷系統中具有時區信息的日期和時間。 此類存儲所有日期和時間字段,精度為納秒。 我們可以使用`ZonedDateTime`實例來代表全球分布的用戶的時間。 例如,我們可以使用`ZonedDateTime`傳達會議日期,參加者將根據他們的本地日期和時間在線連接。 `ZonedDateTime`的狀態等于三個單獨的對象:[`LocalDateTime`](https://howtodoinjava.com/java/java-localdatetime-class/),`ZoneId`和已解析的`ZoneOffset`。 注意,`ZonedDateTime`實例是[**不可變的**](https://howtodoinjava.com/java/basics/how-to-make-a-java-class-immutable/)和[**線程安全**](https://howtodoinjava.com/java/multi-threading/what-is-thread-safety/)。 ## 1\. `ZonedDateTime`類聲明 ```java public final class ZonedDateTime extends Object implements Temporal, ChronoZonedDateTime<LocalDate>, Serializable { //class body } ``` ## 2\. 如何創建`ZonedDateTime` 通常,我們將在兩種情況下創建`ZonedDateTime`實例,即獲取具有區域信息的當前時間戳或創建代表特定時區的時間戳。 #### 2.1 獲取當前的`ZonedDateTime` 使用以下工廠方法獲取當前時間戳。 ```java ZonedDateTime now = ZonedDateTime.now(); ZonedDateTime now = ZonedDateTime.now( ZoneId.of("GMT+05:30") ); //Time in IST ``` #### 2.2 創建指定的`ZonedDateTime` 要創建帶有特定日期,時間和區域信息的時間戳,請使用以下方法。 ```java //1 - All date parts are inplace ZoneId zoneId = ZoneId.of("UTC+1"); ZonedDateTime zonedDateTime1 = ZonedDateTime.of(2015, 11, 30, 23, 45, 59, 1234, zoneId); //========= //2 - Using existing local date and time values LocalDate localDate = LocalDate.of(2019, 03, 12); LocalTime localTime = LocalTime.of(12, 44); ZoneId zoneId = ZoneId.of("GMT+05:30"); ZonedDateTime timeStamp = ZonedDateTime.of( localDate, localTime, zoneId ); ``` ## 3\. 如何將字符串解析為`ZonedDateTime` `ZonedDateTime`類具有兩個重載的`parse()`方法,用于將字符串中的時間轉換為本地時間實例。 ```java parse(CharSequence text) //1 parse(CharSequence text, DateTimeFormatter formatter) //2 ``` * 如果字符串以[`ISO_ZONED_DATE_TIME`](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_ZONED_DATE_TIME)模式包含時間,即`2019-03-28T10:15:30+01:00[Europe/Paris]`則使用第一種方法。 這是默認模式。 * 對于任何其他日期時間模式,我們都需要使用第二種方法,在該方法中我們將日期時間作為字符串傳遞,并使用格式化器來表示該日期時間字符串的模式。 ```java //1 - default pattern String timeStamp = "2019-03-27T10:15:30"; ZonedDateTime localTimeObj = ZonedDateTime.parse(time); //2 - specified pattern DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a"); String timeStamp1 = "2019-03-27 10:15:30 AM"; ZonedDateTime localTimeObj1 = ZonedDateTime.parse(timeStamp1, formatter); ``` ## 4\. 如何將`ZonedDateTime`格式化為字符串 使用`ZonedDateTime.format(DateTimeFormatter)`方法將本地時間格式化為所需的字符串表示形式。 ```java DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a"); ZonedDateTime now = ZonedDateTime.now(); String dateTimeString = now.format(formatter); //2019-03-28 14:47:33 PM ``` ## 5\. 如何修改`ZonedDateTime` `ZonedDateTime`提供以下修改方法。 所有方法都返回`ZonedDateTime`的新實例,因為現有實例始終是不可變的。 * `plusYears()` * `plusMonths()` * `plusDays()` * `plusHours()` * `plusMinutes()` * `plusSeconds()` * `plusNanos()` * `minusYears()` * `minusMonths()` * `minusDays()` * `minusHours()` * `minusMinutes()` * `minusSeconds()` * `minusNanos()` ```java ZonedDateTime now = ZonedDateTime.now(); //3 hours later ZonedDateTime zonedDateTime1 = now.plusHours(3); //3 minutes earliar ZonedDateTime zonedDateTime2 = now.minusMinutes(3); //Next year same time ZonedDateTime zonedDateTime2 = now.plusYears(1); //Last year same time ZonedDateTime zonedDateTime2 = now.minusYears(1); ``` ## 6\. 更多例子 [將`ZonedDateTime`格式化為字符串](https://howtodoinjava.com/java/date-time/format-zoneddatetime/) [將字符串解析為`ZonedDateTime`](https://howtodoinjava.com/java/date-time/zoneddatetime-parse/) [在 Java 中將`LocalDate`轉換為`ZonedDateTime`](https://howtodoinjava.com/java/date-time/localdate-zoneddatetime-conversion/) [`ZonedDateTime`時區轉換示例](https://howtodoinjava.com/java/date-time/convert-date-between-timezones/) [比較`ZonedDateTime`實例](https://howtodoinjava.com/java/date-time/zoneddatetime-comparison/) [Java 8 – 將字符串解析為 UTC 中的日期時間](https://howtodoinjava.com/java8/parse-string-to-date-time-utc-gmt/) 在評論中向我發送有關 Java 8 `ZonedDateTime`類的問題。 學習愉快! 參考: [`ZonedDateTime` Java 文檔](https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看