提问人:Kris B 提问时间:8/1/2023 最后编辑:Kris B 更新时间:8/1/2023 访问量:38
ZonedDateTime 输出在 Android 13 上有所不同
ZonedDateTime output different on Android 13
问:
我在不同版本的 Android 上获得了两个不同的日期输出
ZonedDateTime.parse("Mon, 31 Jul 2023 18:57:55 +0000", DateTimeFormatter.RFC_1123_DATE_TIME.withZone(ZoneId.systemDefault())).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
在 Android 13 上,输出为:
2023-07-31 14:57:55
在 Android 9 和 11 上,输出为:
2023-07-31 18:57:55
如果我记录所有版本返回:美国/New_YorkZoneId.systemDefault()
Android 13 的日期正确无误。但是,如果我使用 a 而不是,那么 Android 13 上也会输出错误的日期。LocalDateTime
ZonedDateTime
如果我使用
ZonedDateTime.parse("Mon, 31 Jul 2023 18:57:55 +0000", DateTimeFormatter.ofPattern("EEE, d MMM yyyy HH:mm:ss z").withZone(ZoneId.systemDefault())).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
更新:我尝试将时区更改为“美国/Los_Angeles”,这是不同日期的结果:
ZonedDateTime dateTime = ZonedDateTime.parse("Tue, 01 Aug 2023 10:00:00 -0000", DateTimeFormatter.RFC_1123_DATE_TIME.withZone(ZoneId.systemDefault())).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Android 13: 2023-08-01 03:00:00
Android 11: 2023-08-01 10:00:00
我应该补充一点,我正在将我所有的代码转换为旧代码,而旧代码并没有发生这种情况。java.util.Date
java.time
答: 暂无答案
评论