使用DateTimeFormatter对不同字符串格式的时间解析为时间戳
时间: 2023-08-05 15:27:28 浏览: 158
datetime-formatter:具有日期和时间的图书馆
好的,您可以使用DateTimeFormatter类来解析不同格式的时间字符串,并将其转换为时间戳。下面是一个示例代码,可以解析三种不同格式的时间字符串:
```
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 = "20220101120000";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
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,因为我所在的时区是东八区,您需要根据自己的时区进行调整。
阅读全文