📅  最后修改于: 2023-12-03 15:01:33.609000             🧑  作者: Mango
在Java中,我们通常需要将LocalDateTime
类型的数据转换为long
类型的时间戳,以便于存储、传输等操作。下面就来介绍一下如何在Java中实现这个操作。
Java 8引入了Instant
类,该类表示的是一个瞬时的时间点。Instant
类可以使用toEpochMilli()
方法将其转换为long
类型的时间戳。因为LocalDateTime
不包含时区信息,需要使用ZoneOffset.UTC
指定一个固定的时区。
import java.time.LocalDateTime;
import java.time.Instant;
import java.time.ZoneOffset;
public class LocalDateTimeToLong {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
long timeStampMillis = instant.toEpochMilli();
System.out.println("LocalDateTime转换为long类型的时间戳:" + timeStampMillis);
}
}
Timestamp
是Java中表示时间戳的类,可以表示从1970年1月1日00:00:00到指定时间点之间的毫秒数。我们可以将LocalDateTime
对象转换为Timestamp
对象,再使用getTime()
方法获取对应的毫秒数。
import java.sql.Timestamp;
import java.time.LocalDateTime;
public class LocalDateTimeToLong {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
Timestamp timestamp = Timestamp.valueOf(localDateTime);
long timeStampMillis = timestamp.getTime();
System.out.println("LocalDateTime转换为long类型的时间戳:" + timeStampMillis);
}
}
Duration
类表示的是一段时间间隔,我们可以使用between()
方法来计算两个LocalDateTime
对象之间的时间差,并使用toMillis()
方法将其转换为毫秒数。
import java.time.Duration;
import java.time.LocalDateTime;
public class LocalDateTimeToLong {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
LocalDateTime oldDateTime = LocalDateTime.of(2020, 6, 1, 0, 0, 0);
Duration duration = Duration.between(oldDateTime, localDateTime);
long timeStampMillis = duration.toMillis();
System.out.println("LocalDateTime转换为long类型的时间戳:" + timeStampMillis);
}
}
以上就是在Java中将LocalDateTime
对象转换为long
类型的三种方法,可以根据实际情况选择不同的方法来实现相应的操作。