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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。