使用DateTimeFormatter对不同字符串格式的时间、日期解析为时间戳
时间: 2024-03-01 13:49:55 浏览: 69
字符串和时间戳相互转换
好的,您可以使用`DateTimeFormatter`类来解析不同格式的时间、日期字符串,并将其转换为时间戳。下面是一个示例代码,可以解析三种不同格式的时间、日期字符串:
```java
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class TimeParser {
public static void main(String[] args) {
String time1 = "2022-01-01 12:00:00";
String time2 = "2022-01-01T12:00:00";
String time3 = "2022/01/01 12:00";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
LocalDateTime localDateTime1 = LocalDateTime.parse(time1, formatter1);
LocalDateTime localDateTime2 = LocalDateTime.parse(time2, formatter2);
LocalDateTime localDateTime3 = LocalDateTime.parse(time3, formatter3);
long timestamp1 = localDateTime1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
long timestamp2 = localDateTime2.toInstant(ZoneOffset.of("+8")).toEpochMilli();
long timestamp3 = localDateTime3.toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println(timestamp1);
System.out.println(timestamp2);
System.out.println(timestamp3);
}
}
```
在这个示例中,我们定义了三个不同格式的时间、日期字符串,分别使用不同的`DateTimeFormatter`进行解析。然后,我们将解析后的时间转换为`LocalDateTime`对象,并使用`toInstant`方法将其转换为时间戳。请注意,我们使用的`ZoneOffset`是+8,因为我所在的时区是东八区,您需要根据自己的时区进行调整。
阅读全文