📅  最后修改于: 2023-12-03 15:01:51.891000             🧑  作者: Mango
在Java 8及以上版本中,ChronoLocalDateTime类提供了toEpochSecond()方法,该方法将本地日期时间以秒为单位转换为UNIX时间戳。
long toEpochSecond(ZoneOffset offset);
offset
:本地日期时间与UTC之间的时差,以小时为单位。如果为null,则使用默认偏移量。以下示例展示如何使用toEpochSecond()方法将本地日期时间转换为UNIX时间戳。
import java.time.LocalDateTime;
import java.time.ZoneOffset;
public class Example {
public static void main(String[] args) {
// 创建一个本地日期时间对象
LocalDateTime dateTime = LocalDateTime.of(2021, 1, 1, 0, 0, 0);
// 将本地日期时间转换为UNIX时间戳
long epochSecond = dateTime.toEpochSecond(ZoneOffset.UTC);
// 输出时间戳
System.out.println(epochSecond); // 1609459200
}
}
在上述示例中,我们创建了一个本地日期时间对象dateTime
,并使用toEpochSecond()方法将其转换为秒数形式的UNIX时间戳。由于我们使用了UTC作为本地日期时间与UTC之间的时差,因此返回的时间戳是基于UTC的。本示例输出的时间戳为1609459200,表示2021年1月1日午夜UTC的时间戳。
toEpochSecond()方法使得将本地日期时间转换为UNIX时间戳变得非常简单。需要注意的是,在使用该方法时必须指定本地日期时间与UTC之间的时差,否则将使用默认偏移量。