上面的是和当地时间比较吗?不用换时区?
时间: 2023-08-18 14:10:56 浏览: 109
非常抱歉,我在之前的回答中有误解你的意思。如果你想要将给定的日期时间字符串转换为当地时间,而不考虑时区的影响,你可以使用 `LocalDateTime` 类而不是 `ZonedDateTime` 类。以下是修改后的示例代码:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] dateTimeStrings = {"2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00", "2023-07-21T20:40+08:00"};
// 创建 DateTimeFormatter 对象,指定输入日期时间字符串的格式
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
// 遍历日期时间字符串数组
for (String dateTimeString : dateTimeStrings) {
// 将日期时间字符串解析为 LocalDateTime 对象
LocalDateTime localDateTime = LocalDateTime.parse(dateTimeString, formatter);
// 格式化输出当地时间
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String localDateTimeString = localDateTime.format(outputFormatter);
System.out.println("Local date and time: " + localDateTimeString);
}
}
}
```
这次的代码将会直接解析日期时间字符串为 `LocalDateTime` 对象,而不涉及时区转换。然后,使用 `DateTimeFormatter` 对象将 `LocalDateTime` 格式化为所需的字符串形式。
请注意,这种方式不会考虑时区的影响,它仅仅是将给定的日期时间字符串转换为本地的日期和时间。如果你需要考虑时区的问题,可以继续使用 `ZonedDateTime` 类,并使用相应的时区来转换。
希望这次的回答更符合你的需求。如果你还有其他问题,请随时提问。
阅读全文