📜  java 将 LocalDateTime 转换为 long - Java (1)

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

Java中将LocalDateTime转换为long

在Java中,我们通常需要将LocalDateTime类型的数据转换为long类型的时间戳,以便于存储、传输等操作。下面就来介绍一下如何在Java中实现这个操作。

1. 使用Instant对象

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);
    }
}
2. 使用Timestamp对象

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);
    }
}
3. 使用Duration对象

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类型的三种方法,可以根据实际情况选择不同的方法来实现相应的操作。