打印 GMT+00:00 日期

问题描述 投票:0回答:1

我需要打印类似

"Fri Feb 24 2023 13:57:11 GMT+00:00"
的日期 与

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM d u H:m:s O", Locale.ENGLISH);
OffsetDateTime odt = OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.of("+05:30"));
String strDate = odt.format(dtf);

我可以打印它像

"Fri Feb 24 2023 19:27:11 GMT+5:30".

但是如果我使用

OffsetDateTime odt = OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.of("+00:00"));

它打印为

"Fri Feb 24 2023 13:57:11 GMT"
没有
+00:00
我怎么能在 java 中添加它?

java timezone simpledateformat date-format timezone-offset
1个回答
0
投票

避免硬编码局部区域偏移

避免硬编码局部区域偏移(例如“GMT”)。

DateTimeFormatter
已经为您提供了模式
O
来处理局部区域偏移。

演示:

class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2023, 1, 24, 13, 57, 11);
        Date date = calendar.getTime();

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM d u H:m:s Oxxx", Locale.ENGLISH);
        ZonedDateTime zdt = ZonedDateTime.ofInstant(date.toInstant(), ZoneOffset.UTC);
        String strDate = zdt.format(dtf);
        System.out.println(strDate);
    }
}

输出

Fri Feb 24 2023 13:57:11 GMT+00:00

在线演示

Trail: Date Time.

了解更多关于现代日期时间 API
© www.soinside.com 2019 - 2024. All rights reserved.