📅  最后修改于: 2023-12-03 15:01:58.298000             🧑  作者: Mango
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对象,表示截取到指定时间单位后的时间。