当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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