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
相關用法
- Java java.time.OffsetTime.adjustInto()用法及代碼示例
- Java java.time.OffsetTime.atDate()用法及代碼示例
- Java java.time.OffsetTime.compareTo()用法及代碼示例
- Java java.time.OffsetTime.equals()用法及代碼示例
- Java java.time.OffsetTime.format()用法及代碼示例
- Java java.time.OffsetTime.from()用法及代碼示例
- Java java.time.OffsetTime.get()用法及代碼示例
- Java java.time.OffsetTime.getHour()用法及代碼示例
- Java java.time.OffsetTime.getLong()用法及代碼示例
- Java java.time.OffsetTime.getMinute()用法及代碼示例
- Java java.time.OffsetTime.getNano()用法及代碼示例
- Java java.time.OffsetTime.getOffset()用法及代碼示例
- Java java.time.OffsetTime.getSecond()用法及代碼示例
- Java java.time.OffsetTime.hashCode()用法及代碼示例
- Java java.time.OffsetTime.isAfter()用法及代碼示例
- Java java.time.OffsetTime.isBefore()用法及代碼示例
- Java java.time.OffsetTime.isEqual()用法及代碼示例
- Java java.time.OffsetTime.isSupported()用法及代碼示例
- Java java.time.OffsetTime.minus()用法及代碼示例
- Java java.time.OffsetTime.minusHours()用法及代碼示例
- Java java.time.OffsetTime.minusMinutes()用法及代碼示例
- Java java.time.OffsetTime.minusNanos()用法及代碼示例
- Java java.time.OffsetTime.minusSeconds()用法及代碼示例
- Java java.time.OffsetTime.now()用法及代碼示例
- Java java.time.OffsetTime.of()用法及代碼示例
注:本文由純淨天空篩選整理自sanketnagare大神的英文原創作品 java.time.OffsetTime Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。