You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中DateTimeFormatter如何输出带+00:00的GMT时间格式

解决Java中UTC偏移日期格式化缺少+00:00的问题

问题出在你使用的格式化模式符号O上,它代表本地化的区域偏移ID,对于UTC(+00:00)偏移,Java时间API默认会将其格式化为"GMT"而非"GMT+00:00"。要实现无论偏移是多少都显示完整的"GMT±HH:mm"格式,只需调整格式化模式:

解决方案:替换格式模式中的O为'GMT'xxx

直接在模式中固定"GMT"字符串,搭配xxx符号(表示带小时分钟的偏移格式,如+05:30、+00:00),代码如下:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM d u H:m:s 'GMT'xxx", Locale.ENGLISH);
// 示例:UTC偏移场景
OffsetDateTime odt = OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.of("+00:00"));
String strDate = odt.format(dtf);

此时输出为:Fri Feb 24 2023 13:57:11 GMT+00:00

对于+05:30的偏移场景,输出为:Fri Feb 24 2023 19:27:11 GMT+05:30,完全符合你的需求。

补充说明

  • xxx符号会始终输出带符号的小时和分钟(即使分钟为0),保证格式统一;
  • 原模式中的O是本地化输出,不同Locale可能有不同表现,而固定"GMT"搭配xxx能确保格式一致性。

内容的提问来源于stack exchange,提问作者Atul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:27:39