如何将ZonedDateTime格式转变为yyyy-MM-dd格式 但是数据类型不变
时间: 2024-01-11 10:06:15 浏览: 26
要将`ZonedDateTime`格式转换为`yyyy-MM-dd`格式,但保持数据类型不变,您可以使用`DateTimeFormatter`类将其格式化为字符串,然后再将字符串解析回`ZonedDateTime`对象。
下面是一个示例代码:
```java
import java.time.*;
import java.time.format.*;
public class Main {
public static void main(String[] args) {
ZonedDateTime zonedDateTime = ZonedDateTime.now(); // 获取当前时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 指定要转换的格式
String formattedDateTime = zonedDateTime.format(formatter); // 格式化时间
ZonedDateTime parsedDateTime = ZonedDateTime.parse(formattedDateTime, formatter); // 解析为ZonedDateTime对象
System.out.println("原始时间: " + zonedDateTime);
System.out.println("格式化后的时间: " + formattedDateTime);
System.out.println("解析后的时间: " + parsedDateTime);
}
}
```
在上述代码中,我们首先获取当前时间的`ZonedDateTime`对象,然后创建一个`DateTimeFormatter`对象,指定要转换的格式为"yyyy-MM-dd"。之后,我们使用`format()`方法将`ZonedDateTime`对象格式化为指定的格式,并将结果存储在字符串变量`formattedDateTime`中。
接下来,我们使用`parse()`方法将格式化后的字符串解析回`ZonedDateTime`对象,并将结果存储在`parsedDateTime`变量中。
最后,我们分别打印原始时间、格式化后的时间和解析后的时间。
请注意,解析后的`parsedDateTime`对象与原始的`zonedDateTime`对象具有相同的数据类型,只是将格式进行了更改。