當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.time.OffsetTime用法及代碼示例


Java OffsetTime 類是一個不可變的日期時間對象,表示時間,通常被視為 hour-minute-second 偏移量。 OffsetTime 類表示 ISO-8601 日曆係統中與 UTC/格林威治有偏移的時間,例如 18:30:45+08:00,通常被視為hour-minute-second-offset。此類是不可變的且線程安全的,存儲所有時間字段(精確到納秒)以及區域偏移量。

用法:類聲明

public final class OffsetTime extends Object   
implements Temporal, TemporalAdjuster, Comparable<OffsetTime>, Serializable  

現在讓我們來看看收集此類方法知識的主要怪癖,如下表格式所示:

Method

執行的操作

format(DateTimeFormatter formatter) 這次使用指定的格式化程序進行格式化。
of(LocalTime time, ZoneOffset offset) 從本地時間和偏移量獲取 OffsetTime 的實例。
range(TemporalField field) 獲取指定字段的有效值範圍。
toLocalTime() 獲取此日期時間的 LocalTime 部分。
adjustInto(Temporal temporal) 調整指定的時間對象,使其具有與該對象相同的偏移量和時間。
atDate(LocalDate date) 將此時間與日期結合起來創建 OffsetDateTime。
compareTo(OffsetTime other) 將此OffsetTime 與另一個時間進行比較。
equals(Object obj) 檢查這個時間是否等於另一個時間。
format(DateTimeFormatter formatter) 這次使用指定的格式化程序進行格式化。
from(TemporalAccessor temporal) 從時間對象獲取 OffsetTime 的實例。
get(TemporalField field) 獲取此時指定字段的 int 值。
getHour() 獲取hour-of-day字段。
getLong(TemporalField field) 獲取從此時起指定字段的長整型值。
getMinute() 獲取minute-of-hour字段。
getNano() 獲取納秒級字段。
getOffset() 獲取區域偏移量,例如“+01:00”。
getSecond() 獲取second-in-minute字段。
hashCode() 這次的哈希碼。
isAfter(OffsetTime other) 檢查此 OffsetTime 的時刻是否晚於將兩個時間應用於共同日期的指定時間。
isBefore(OffsetTime other) 檢查此 OffsetTime 的時刻是否早於指定時間,並將兩個時間應用於共同日期。
isEqual(OffsetTime other) 檢查此 OffsetTime 的時刻是否等於指定時間的時刻,並將兩個時間應用於共同日期。
isSupported(TemporalField field) 檢查指定字段是否受支持。
isSupported(TemporalUnit unit) 檢查指定的單位是否受支持。
minus(long amountToSubtract, TemporalUnit unit) 返回該時間的副本並減去指定的數量。
minus(TemporalAmount amountToSubtract) 返回該時間的副本並減去指定的數量。
minusHours(long hours) 返回此 OffsetTime 的副本,並減去指定的小時數。
minusMinutes(long minutes) 返回此 OffsetTime 的副本,並減去指定的分鍾數。
minusNanos(long nanos) 返回此 OffsetTime 的副本,並減去指定的納秒數。
minusSeconds(long seconds) 返回此 OffsetTime 的副本,並減去指定的秒數。
now() 從默認時區的係統時鍾獲取當前時間。
now(Clock clock) 從指定時鍾獲取當前時間。
now(ZoneId zone) 從係統時鍾獲取指定時區的當前時間。
of(int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset) 從小時、分鍾、秒和納秒獲取 OffsetTime 的實例。
of(LocalTime time, ZoneOffset offset) 從本地時間和偏移量獲取 OffsetTime 的實例。
ofInstant(Instant instant, ZoneId zone) 從即時和區域 ID 獲取 OffsetTime 的實例。
parse(CharSequence text) 從文本字符串(例如 10:15:30+01:00)獲取 OffsetTime 的實例。
parse(CharSequence text, DateTimeFormatter formatter) 使用特定格式化程序從文本字符串獲取 OffsetTime 的實例。
plus(long amountToAdd, TemporalUnit unit) 返回本次的副本並添加指定的數量。
plus(TemporalAmount amountToAdd) 返回本次的副本並添加指定的數量。
plusHours(long hours) 返回此 OffsetTime 的副本,並添加指定的小時數。
plusMinutes(long minutes) 返回此 OffsetTime 的副本,並添加指定的分鍾數。
plusNanos(long nanos) 返回此 OffsetTime 的副本,並添加指定的納秒數。
plusSeconds(long seconds) 返回此 OffsetTime 的副本,並添加指定的秒數。
查詢(TemporalQuery<R> 查詢) 這次使用指定的查詢進行查詢。
range(TemporalField field) 獲取指定字段的有效值範圍。
toLocalTime() 獲取此日期時間的 LocalTime 部分。
toString() 這次以字符串形式輸出,例如 10:15:30+01:00。
truncatedTo(TemporalUnit unit) 返回此 OffsetTime 的副本,其中時間被截斷。
until(Temporal endExclusive, TemporalUnit unit) 以指定單位計算距另一時間的時間量。
with(TemporalAdjuster adjuster) 返回本次調整後的副本。
with(TemporalField field, long newValue) 返回此時間的副本,並將指定字段設置為新值。
withHour(int hour) 返回此 OffsetTime 的副本,其中 hour-of-day 已更改。
withMinute(int minute) 返回此 OffsetTime 的副本,其中 minute-of-hour 已更改。
withNano(int nanoOfSecond) 返回此 OffsetTime 的副本,並更改納秒。
withOffsetSameInstant(ZoneOffset offset) 返回此 OffsetTime 的副本,並具有指定的偏移量,確保結果是在隱含日期的同一時刻得到的。
withOffsetSameLocal(ZoneOffset offset) 返回此 OffsetTime 的副本,具有指定的偏移量,確保結果與本地時間相同。
withSecond(int second) 返回此 OffsetTime 的副本,其中 second-minute 已更改。

現在讓我們實現上表中列出的一些方法,以深入了解這些方法的內部工作原理。

示例 1:now()方法

Java


// Java Program to Implement OffsetTime class
// via now() method
// Importing required classes
import java.time.OffsetTime;
import java.time.temporal.ChronoField;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of class in main() method
        OffsetTime offset = OffsetTime.now();
        int h = offset.get(ChronoField.HOUR_OF_DAY);
        System.out.println(h);
        int m = offset.get(ChronoField.MINUTE_OF_DAY);
        System.out.println(m);
        int s = offset.get(ChronoField.SECOND_OF_DAY);
        System.out.println(s);
    }
}
輸出
4
253
15211

示例 2:getHour()方法

Java


// Java Program to Implement OffsetTime Class
// via getHour() method
// Importing the class from java.time package
import java.time.OffsetTime;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an instance of class and
        // operation now() method over it to
        // get the current time from clock
        OffsetTime offset = OffsetTime.now();
        // Getting the hour of day field
        int h = offset.getHour();
        // Print and display the hours
        System.out.println(h + " hours");
    }
}
輸出
4 hours

示例 3:getMinute()方法

Java


// Java Program to Implement OffsetTime Class
// via getMinute() Method
// Importing the class from java.time package
import java.time.OffsetTime;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an instance of the class
        OffsetTime offset = OffsetTime.now();
        // Getting the minutes of the day field
        int m = offset.getMinute();
        // Print and display the minutes
        System.out.println(m + " minutes");
    }
}
輸出
12 minutes

示例4:getSecond()方法

Java


// Java Program to Implement OffsetTime Class
// via getSecond() Method
// Importing the class from java.time package
import java.time.OffsetTime;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an instance of the class
        OffsetTime offset = OffsetTime.now();
        // Getting the second from the day field
        int s = offset.getSecond();
        // Print and display the seconds
        System.out.println(s + " seconds");
    }
}
輸出
40 seconds

實施例5:getNano()方法

Java


// Java Program to Implement OffsetTime Class
// via getNano() Method
// Importing the class from java.time package
import java.time.OffsetTime;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an instance of the class
        // in the main() method
        OffsetTime offset = OffsetTime.now();
        // Getting the nano-of-second field
        int n = offset.getNano();
        // Print and display the nanoseconds
        System.out.println(n + " nanoseconds");
    }
}
輸出
464297000 nanoseconds

實施例6:of()方法

Java


// Java Program to Implement OffsetTime Class
// via of() Method
// Importing desired classes from java.time package
import java.time.LocalTime;
import java.time.OffsetTime;
import java.time.ZoneOffset;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Obtaining an instance of OffsetTime
        // from a local time and an offset.
        OffsetTime time = OffsetTime.of(LocalTime.now(),
                                        ZoneOffset.UTC);
        // Print and display the time
        System.out.println(time);
    }
}
輸出
04:12:05.574520Z

實施例7:toLocalTime()方法

Java


// Java Program to Implement OffsetTime Class
// via toLocalTime() Method
// Importing the class from java.time package
import java.time.OffsetTime;
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Getting the current time from the system clock
        // in the default time zone
        OffsetTime time = OffsetTime.now();
        // Getting the LocalTime part of this date-time
        System.out.println(time.toLocalTime());
    }
}
輸出
04:11:47.834567


相關用法


注:本文由純淨天空篩選整理自sanketnagare大神的英文原創作品 java.time.OffsetTime Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。