java中如何把Stirng类型的时间转换为时间戳
时间: 2024-10-24 11:04:22 浏览: 17
在Java中,可以使用`java.util.Date`类的`getTime()`方法或者`java.time.LocalDate`、`LocalDateTime`等类提供的`atStartOfDay()`方法结合`toInstant()`和`EpochMilli`来将字符串类型的日期时间转换为Unix时间戳(毫秒)。假设你有一个ISO 8601格式的字符串:
```java
String dateString = "2023-04-01T12:00:00";
try {
// 使用DateTimeFormatter解析字符串
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
// 将LocalDateTime转换为LocalDate并获取当天的开始时间
LocalDate date = dateTime.toLocalDate().atStartOfDay();
// 转换为Instant并获取对应的Unix时间戳(毫秒)
Instant instant = date.atStartOfDay ZoneId.systemDefault()).toInstant();
long timestampInMilliseconds = instant.toEpochMilli();
System.out.println("Timestamp in milliseconds: " + timestampInMilliseconds);
} catch (Exception e) {
e.printStackTrace();
}
```
在这个例子中,我们首先将字符串转换为`LocalDateTime`,然后将其转换为`LocalDate`并添加默认时区的开始时间。最后,我们将结果转换为`Instant`,从而获得Unix时间戳。
阅读全文