📜  Java中的Java .time.OffsetTime 类(1)

📅  最后修改于: 2023-12-03 15:16:29.607000             🧑  作者: Mango

Java中的Java .time.OffsetTime 类

简介

OffsetTime类是Java8中的时间API中的一部分,用于表示时间、日期、时间与日期的组成以及偏移量。它是一个由LocalTime和ZoneOffset组成的不可变的类。其中LocalTime表示时间,而ZoneOffset则表示与UTC时间的偏移量。

创建对象

我们可以通过多种方法来使用OffsetTime类来创建对象:

1.使用now方法

OffsetTime.now()方法创建一个表示当前时间的偏移时间对象。

如下示例创建一个表示当前时间(北京时区的时间)的OffsetTime对象:

OffsetTime offsetTime = OffsetTime.now(ZoneId.of("Asia/Shanghai"));
2.使用of方法

OffsetTime.of()方法用于创建一个指定时间和偏移量的OffsetTime对象。

如下所示,创建一个代表上午5点30分的偏移时间对象,偏移量为UTC + 3小时:

OffsetTime offsetTime = OffsetTime.of(5, 30, 0, ZoneOffset.ofHours(3));
3.使用parse方法

OffsetTime.parse()方法可将字符串解析为偏移时间对象。

以下代码将输入字符串解析为OffsetTime对象:

OffsetTime offsetTime = OffsetTime.parse("09:15:30+08:00");
常用方法

OffsetTime类提供了一些常用的方法:

1.getHour方法

getHour()方法返回当前偏移时间对象的小时数,范围为0~23。

以下代码返回当前偏移时间对象的小时数:

int hour = offsetTime.getHour();
2.getMinute方法

getMinute()方法返回当前偏移时间对象的分钟数,范围为0~59。

以下代码返回当前偏移时间对象的分钟数:

int minute = offsetTime.getMinute();
3.getSecond方法

getSecond()方法返回当前偏移时间对象的秒数,范围为0~59。

以下代码返回当前偏移时间对象的秒数:

int second = offsetTime.getSecond();
4.getOffset方法

getOffset()方法返回当前偏移时间对象的偏移量。

以下代码返回当前偏移时间对象的偏移量:

ZoneOffset offset = offsetTime.getOffset();
示例代码
import java.time.OffsetTime;
import java.time.ZoneId;
import java.time.ZoneOffset;

public class OffsetTimeDemo {
    public static void main(String[] args) {
        // 创建一个表示当前时间(北京时区的时间)的OffsetTime对象
        OffsetTime now = OffsetTime.now(ZoneId.of("Asia/Shanghai"));
        System.out.println("当前时间:" + now);

        // 创建一个代表上午5点30分的偏移时间对象,偏移量为UTC + 3小时
        OffsetTime offsetTime = OffsetTime.of(5, 30, 0, ZoneOffset.ofHours(3));
        System.out.println("指定时间:" + offsetTime);

        // 将输入字符串解析为OffsetTime对象
        OffsetTime parsedOffsetTime = OffsetTime.parse("09:15:30+08:00");
        System.out.println("解析字符串后的偏移时间对象为:" + parsedOffsetTime);

        // 获取当前偏移时间对象的小时数
        int hour = now.getHour();
        System.out.println("当前时间的小时数为:" + hour);

        // 获取当前偏移时间对象的分钟数
        int minute = now.getMinute();
        System.out.println("当前时间的分钟数为:" + minute);

        // 获取当前偏移时间对象的秒数
        int second = now.getSecond();
        System.out.println("当前时间的秒数为:" + second);

        // 获取当前偏移时间对象的偏移量
        ZoneOffset offset = now.getOffset();
        System.out.println("当前时间的偏移量为:" + offset);
    }
}

输出结果:

当前时间:14:30:30.039058100+08:00
指定时间:05:30+03:00
解析字符串后的偏移时间对象为:09:15:30+08:00
当前时间的小时数为:14
当前时间的分钟数为:30
当前时间的秒数为:30
当前时间的偏移量为:+08:00

以上就是OffsetTime类的基本使用方式及常用方法的介绍。