JAVA使用java.time包对yyyyMMddHHmmss、yyyyMMdd、yyyyMM、yyyy等格式的时间解析为时间戳
时间: 2023-11-19 14:06:25 浏览: 123
Java日期时间格式化操作DateUtils 的整理
好的,您可以使用`java.time`包中的类来解析不同格式的时间字符串,并将其转换为时间戳。下面是一个示例代码,可以解析四种不同格式的时间字符串:
```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 = "20220101120000";
String time2 = "20220101";
String time3 = "202201";
String time4 = "2022";
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd");
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyyMM");
DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy");
LocalDateTime localDateTime1 = LocalDateTime.parse(time1, formatter1);
LocalDateTime localDateTime2 = LocalDateTime.parse(time2, formatter2);
LocalDateTime localDateTime3 = LocalDateTime.parse(time3, formatter3);
LocalDateTime localDateTime4 = LocalDateTime.parse(time4, formatter4);
long timestamp1 = localDateTime1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
long timestamp2 = localDateTime2.toInstant(ZoneOffset.of("+8")).toEpochMilli();
long timestamp3 = localDateTime3.toInstant(ZoneOffset.of("+8")).toEpochMilli();
long timestamp4 = localDateTime4.toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println(timestamp1);
System.out.println(timestamp2);
System.out.println(timestamp3);
System.out.println(timestamp4);
}
}
```
在这个示例中,我们定义了四个不同格式的时间字符串,分别使用不同的`DateTimeFormatter`进行解析。然后,我们将解析后的时间转换为`LocalDateTime`对象,并使用`toInstant`方法将其转换为时间戳。请注意,我们使用的`ZoneOffset`是+8,因为我所在的时区是东八区,您需要根据自己的时区进行调整。
阅读全文