我们平时需要获取LocalDateTime
对象的毫秒数或秒数的时候,发现其不能直接提供获取毫秒数或秒数的方法。如果我们要根据LocalDateTime来获毫秒,我们需要将LocalDateTime
转换为Instant
,然后使用java.time.ZoneOffset
来获取,上代码
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.Instant;
/**
* <b>Function: </b> todo
*
* @program: LocalDateTime转换毫秒/秒
* @Package: com.kingbal.king.dmp
* @author: songjianlin
* @date: 2024/08/28
* @version: 1.0
* @Copyright: 2024 www.kingbal.com Inc. All rights reserved.
*/
public class Main {
public static void main(String[] args) {
// 获取秒数
// LocalDateTime.now().toEpochSecond(ZoneOffset.UTC);
Instant instant = LocalDateTime.now().atZone(ZoneOffset.UTC).toInstant();
long seconds = instant.getEpochSecond();
System.out.println("秒数: " + seconds);
// 获取毫秒数
long millis = instant.toEpochMilli();
System.out.println("毫秒数: " + millis);
}
}
这里的秒数和毫秒数是基于UTC时区计算的。如果你需要考虑系统时区,你可能需要使用ZonedDateTime
替换LocalDateTime