📌  相关文章
📜  Java中的 ZonedDateTime truncatedTo() 方法及示例(1)

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

Java中的 ZonedDateTime truncatedTo() 方法及示例

Java中有一个ZonedDateTime类,表示一个带时区的日期时间。ZonedDateTime类提供了truncatedTo()方法,用于将日期时间截取到所需的精度。本文将介绍truncatedTo()方法的语法、参数、返回值及示例。

语法

以下是truncatedTo()方法的语法:

public ZonedDateTime truncatedTo(TemporalUnit unit)
参数

truncatedTo()方法接受一个TemporalUnit类型的参数,表示将日期时间截取到指定的时间单位。TemporalUnit是一个接口,定义了时间单位的抽象方法。

以下是TemporalUnit接口的定义:

public interface TemporalUnit {
    long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive);
    Duration duration();
    boolean isDateBased();
    boolean isDurationEstimated();
    <R extends Temporal> R addTo(R temporal, long amount);
    long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive);
    boolean isTimeBased();
    <T extends Temporal> T subtractFrom(T temporal);
}
返回值

truncatedTo()方法返回一个新的ZonedDateTime实例,该实例表示了原始时间截取到指定的时间单位后的时间。原始时间实例不会发生改变。

示例

以下是truncatedTo()方法的示例:

import java.time.*;

public class Main {
    public static void main(String[] args) {
        ZonedDateTime now = ZonedDateTime.now();
        
        System.out.println("Current datetime: " + now);
        System.out.println("Truncated to hours: " + now.truncatedTo(ChronoUnit.HOURS));
        System.out.println("Truncated to minutes: " + now.truncatedTo(ChronoUnit.MINUTES));
        System.out.println("Truncated to seconds: " + now.truncatedTo(ChronoUnit.SECONDS));
    }
}

输出:

Current datetime: 2021-09-21T14:38:52.047986+08:00[Asia/Shanghai]
Truncated to hours: 2021-09-21T14:00+08:00[Asia/Shanghai]
Truncated to minutes: 2021-09-21T14:38+08:00[Asia/Shanghai]
Truncated to seconds: 2021-09-21T14:38:52+08:00[Asia/Shanghai]

这个示例演示了如何使用truncatedTo()方法将日期时间截取到不同的时间单位。在这个示例中,我们创建了一个当前时间的ZonedDateTime对象,然后依次调用truncatedTo()方法截取到小时、分钟和秒。每次调用truncatedTo()方法都返回了一个新的ZonedDateTime对象,表示截取到指定时间单位后的时间。