Instant 与 SimpleDateFormat 转换时间格式化
时间: 2023-11-22 08:35:25 浏览: 230
Instant和SimpleDateFormat是Java中处理时间格式化和转换的两个类。
1. Instant类是Java 8引入的一个时间类,用于表示时刻。它是不可变的,可以精确到纳秒级别,并且可以与时区无关。通过Instant类,我们可以方便地进行日期和时间的操作和计算。
2. SimpleDateFormat是一个旧的Java类,用于将Date对象格式化为指定的日期和时间字符串,或将日期和时间字符串解析为Date对象。它可以使用不同的模式来指定日期和时间的格式。
要将Instant对象转换为指定格式的时间字符串,可以使用DateTimeFormatter类(Java 8及以上版本)或SimpleDateFormat类(Java 7及以下版本)。
例如,要将Instant对象转换为"yyyy-MM-dd HH:mm:ss"格式的时间字符串,可以使用以下代码:
Java 8及以上版本:
```
Instant instant = Instant.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = formatter.format(instant);
```
Java 7及以下版本:
```
Instant instant = Instant.now();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = formatter.format(Date.from(instant));
```
而要将指定格式的时间字符串解析为Instant对象,可以使用以下代码:
Java 8及以上版本:
```
String dateTimeString = "2022-05-10 15:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Instant instant = Instant.parse(dateTimeString, formatter);
```
Java 7及以下版本:
```
String dateTimeString = "2022-05-10 15:30:00";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = formatter.parse(dateTimeString);
Instant instant = date.toInstant();
```
总结:Instant类是用于表示时刻的,SimpleDateFormat类是用于格式化和解析日期和时间字符串的。要将Instant对象转换为指定格式的时间字符串,可以使用DateTimeFormatter类或SimpleDateFormat类;要将指定格式的时间字符串解析为Instant对象,也可以使用DateTimeFormatter类或SimpleDateFormat类。
阅读全文