Tag: timezoneoffset

在ISO 8601中识别时区

不,我不是在谈论区域偏移 – 这些区域在一年中可能因基于例如夏令时的区域而变化。 我在谈论IANA维护的实际时区 。 我理解ISO 8601 不支持这些,对吗? 什么平台在支持ISO 8601类似字符串表示中识别时区? 我注意到最新的Java日期/时间库正在使用扩展的ISO 8601格式,例如2011-12-03T10:15:30+01:00[Europe/Paris] 。 (请参阅DateTimeFormatter API 。) 是否有一些融合约定(例如与其他语言和平台)用于扩展ISO 8601以支持时区指定?

如何从java中获取时区偏移量的时区?

我知道如何相反。 给出了一个时区我可以通过以下代码片段获得时区偏移量: TimeZone tz = TimeZone.getDefault(); System.out.println(tz.getOffset(System.currentTimeMillis())); 我想知道如何从时区偏移中获取时区名称。 鉴于, timezone offset = 21600000 (以毫秒为单位; +6.00偏移量) 我想获得以下任何可能的时区名称的结果: (GMT+6:00) Antarctica/Vostok (GMT+6:00) Asia/Almaty (GMT+6:00) Asia/Bishkek (GMT+6:00) Asia/Dacca (GMT+6:00) Asia/Dhaka (GMT+6:00) Asia/Qyzylorda (GMT+6:00) Asia/Thimbu (GMT+6:00) Asia/Thimphu (GMT+6:00) Asia/Yekaterinburg (GMT+6:00) BST (GMT+6:00) Etc/GMT-6 (GMT+6:00) Indian/Chagos

Java 8时区转换

在Java 8中,我想将日期时间从UTC转换为ACST(UTC + 9:30)。 输入 – > 2014-09-14T17:00:00 + 00:00 output-> 2014-09-15 02:30:00 String isoDateTime = “2014-09-14T17:00:00+00:00”; LocalDateTime fromIsoDate = LocalDateTime.parse(isoDateTime, DateTimeFormatter.ISO_OFFSET_DATE_TIME); ZoneOffset offset = ZoneOffset.of(“+09:30”); OffsetDateTime acst = OffsetDateTime.of(fromIsoDate, offset); System.out.println(acst.toString()); // 2014-09-14T17:00+09:30 System.out.println(acst.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); // 2014-09-14T17:00:00+09:30 为什么没有执行偏移?

Java 8日期和时间:解析偏移中没有冒号的ISO 8601字符串

我们尝试使用时区偏移量解析以下ISO 8601 DateTime字符串: final String input = “2022-03-17T23:00:00.000+0000”; OffsetDateTime.parse(input); LocalDateTime.parse(input, DateTimeFormatter.ISO_OFFSET_DATE_TIME); 由于时区偏移中的冒号,两种方法都失败(这有意义,因为OffsetDateTime也使用DateTimeFormatter.ISO_OFFSET_DATE_TIME )。 java.time.format.DateTimeParseException:无法在索引23处解析文本’2022-03-17T23:00:00.000 + 0000′ 但根据维基百科 ,有4种有效的时区偏移格式: Z ±hh:mm ±hhmm ±hh 其他框架/语言可以解析这个字符串而没有任何问题,例如Javascript Date()或Jacksons ISO8601Utils (他们在这里讨论这个问题) 现在我们可以使用复杂的RegEx编写自己的DateTimeFormatter ,但在我看来, java.time库应该能够默认解析这个有效的ISO 8601字符串,因为它是有效的。 目前我们使用Jacksons ISO8601DateFormat ,但我们更愿意使用官方的date.time库来使用。 你有什么方法可以解决这个问题?