localdatetime获取时间戳
时间: 2023-09-23 09:05:35 浏览: 345
可以使用`LocalDateTime`类的`toEpochSecond()`方法来获取时间戳。
下面是一个示例代码:
```java
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
long timestamp = now.toEpochSecond(java.time.ZoneOffset.UTC);
System.out.println(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);
```
LocalDateTime获取时间戳
`LocalDateTime` 是 Java 8 引入的一个日期时间类,它表示没有时区信息的日期和时间。如果你需要从 `LocalDateTime` 获取对应的时间戳,即获取从 1970 年 1 月 1 日 00:00:00 UTC 到该 `LocalDateTime` 对应 UTC 时间的毫秒数,你需要将 `LocalDateTime` 转换为一个带时区的 `ZonedDateTime` 对象,然后获取其时间戳。
下面是一个如何进行转换的例子:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前的LocalDateTime
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault()); // 将LocalDateTime转换为系统默认时区的ZonedDateTime
long timestamp = zonedDateTime.toInstant().toEpochMilli(); // 获取时间戳(毫秒)
System.out.println("LocalDateTime: " + localDateTime);
System.out.println("Timestamp: " + timestamp);
}
}
```
在这个例子中,`LocalDateTime.now()` 获取当前的日期和时间,`atZone(ZoneId.systemDefault())` 将 `LocalDateTime` 转换为系统默认时区的 `ZonedDateTime`,然后 `toInstant().toEpochMilli()` 方法计算并返回从 1970 年 1 月 1 日开始到现在的毫秒数。
阅读全文