LocalDateTime 获取时间戳的方法
时间: 2023-10-14 22:20:02 浏览: 91
您可以使用以下方式获取时间戳:
```
LocalDateTime dateTime = LocalDateTime.now();
long timestamp = dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
```
其中,`LocalDateTime.now()`获取当前时间,`atZone`将该时间转换为系统默认时区的`ZonedDateTime`对象,`toInstant`将该对象转换为`Instant`对象,`toEpochMilli`获得该`Instant`对象对应的毫秒级别的时间戳。
相关问题
LocalDateTime localDateTime 获取时间戳
`LocalDateTime` 是Java 8中引入的一个日期和时间类,它代表了一个日期和时间,但不包含时区信息。如果你想从`LocalDateTime`获取时间戳(Unix时间戳或自1970年1月1日00:00:00 UTC以来的秒数),你需要将其转换为`Instant`或者`ZonedDateTime`,然后调用其对应的`toEpochSecond()`方法。
这里是一个例子:
```java
import java.time.LocalDateTime;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前日期和时间
Instant instant = localDateTime.atZone(ZoneOffset.UTC) // 将LocalDateTime转换为带时区的ZonedDateTime
.toInstant(); // 转换为Instant
long timestamp = instant.toEpochSecond(); // 获取Unix时间戳
System.out.println("Unix Timestamp: " + timestamp);
}
}
```
LocalDateTime 获取时间戳
以下是Java8中使用LocalDateTime获取时间戳的方法:
1. 获取毫秒级时间戳
```java
LocalDateTime localDateTime = LocalDateTime.now();long milliSecond = localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println("毫秒级时间戳:" + milliSecond);
```
2. 获取秒级时间戳
```java
LocalDateTime localDateTime = LocalDateTime.now();
long second = localDateTime.toEpochSecond(ZoneOffset.of("+8"));
System.out.println("秒级时间戳:" + second);
```
3. LocalDateTime与String互转
```java
// LocalDateTime转String
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String str = localDateTime.format(formatter);System.out.println("LocalDateTime转String:" + str);
// String转LocalDateTime
String str2 = "2021-08-31 15:30:00";
LocalDateTime localDateTime2 = LocalDateTime.parse(str2, formatter);
System.out.println("String转LocalDateTime:" + localDateTime2);
```
4. Date与LocalDateTime互转
```java
// LocalDateTime转Date
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zoneId).toInstant();
Date date = Date.from(instant);
System.out.println("LocalDateTime转Date:" + date);
// Date转LocalDateTime
Date date2 = new Date();
Instant instant2 = date2.toInstant();
ZoneId zoneId2 = ZoneId.systemDefault();
LocalDateTime localDateTime2 = instant2.atZone(zoneId2).toLocalDateTime();
System.out.println("Date转LocalDateTime:" + localDateTime2);
```
阅读全文
相关推荐













