data转时间戳java
时间: 2024-09-15 20:02:30 浏览: 45
java8 通用转echart方法
在Java中,将字符串形式的日期(data)转换为时间戳(timestamp)通常涉及到使用`java.time`包中的类,如`LocalDateTime`和`Instant`。时间戳指的是从Unix纪元(1970年1月1日 00:00:00 UTC)开始所经过的秒数或毫秒数。
以下是一个简单的示例,展示如何将字符串形式的日期转换为时间戳:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
String dateString = "2023-03-14T15:00:00"; // 举例的日期时间字符串
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
// 将字符串转换为LocalDateTime对象
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
// 转换为时间戳(毫秒)
long timestampMillis = dateTime.atZone(java.time.ZoneId.systemDefault()).toInstant().toEpochMilli();
// 转换为时间戳(秒)
long timestampSeconds = ChronoUnit.SECONDS.between(java.time.ZoneId.systemDefault().getRules().getOffset(java.time.ZonedDateTime.now()), dateTime.atZone(java.time.ZoneId.systemDefault()));
System.out.println("时间戳(毫秒):" + timestampMillis);
System.out.println("时间戳(秒):" + timestampSeconds);
}
}
```
在上述代码中,我们首先定义了日期时间的字符串表示形式和对应的格式化模式。然后使用`DateTimeFormatter`解析字符串得到`LocalDateTime`对象。之后,我们可以使用`LocalDateTime`对象转换得到`Instant`对象,并通过调用`toEpochMilli()`方法得到毫秒为单位的时间戳。如果需要秒为单位的时间戳,可以使用`ChronoUnit.SECONDS.between`方法计算从Unix纪元开始到指定日期时间的秒数差。
阅读全文