Java中如何将OffsetDateTime格式化为带无前置零UTC偏移的指定格式?
Java OffsetDateTime 格式化问题解决办法
要将OffsetDateTime格式化为"23.12.2022 at 12:00 (UTC+2)"的样式,核心是选择正确的时区偏移格式符,同时保留字面量"UTC":
解决方案代码
OffsetDateTime timestamp = OffsetDateTime.parse("2022-12-23T12:00:00.000+02:00"); // 使用小写x代替大写X,移除偏移量的前导零 DateTimeFormatter correctFormatter = DateTimeFormatter.ofPattern("dd.MM.uuuu 'at' HH:mm ('UTC'x)"); String result = timestamp.format(correctFormatter); // 输出:23.12.2022 at 12:00 (UTC+2)
关键说明
- 时区偏移格式符:
原代码中的大写X会生成带前导零的偏移(如+02),而小写x会生成不带前导零的偏移(如+2),完全匹配需求。若偏移包含分钟(如+02:30),x会自动输出+2:30的格式,无需额外调整。 - "UTC"字面量:
用单引号'包裹的'UTC'属于固定文本,会直接原样输出,无需借助其他特殊格式符。
内容的提问来源于stack exchange,提问作者Oleg Sandro
相关产品推荐
相关产品推荐

