获取 GMT 格式的日期作为字符串

Aav*_*vik 0 java

我想要将 GMT 中的日期作为字符串,如下面的 JavaScript 代码:

const date = new Date();
date.toGMTString();
Run Code Online (Sandbox Code Playgroud)

我指的是: Parsing Java String into GMT Date,我的代码如下所示,但出现错误:

private static String getDateGMT() {
        Date date = new Date(System.currentTimeMillis());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println(sdf.format(date));
        return sdf.format(sdf);
    }
Run Code Online (Sandbox Code Playgroud)

如何获取“2021 年 11 月 4 日星期四 06:50:37 GMT”格式的日期?

Ole*_*.V. 5

java.time 和 DateTimeFormatter.RFC_1123_DATE_TIME

private static String getDateGMT() {
    return OffsetDateTime.now(ZoneId.of("Etc/GMT"))
            .format(DateTimeFormatter.RFC_1123_DATE_TIME);
}
Run Code Online (Sandbox Code Playgroud)

这刚刚返回:

2021 年 11 月 4 日星期四 08:31:33 GMT

您所需的格式是内置的,因此无需编写您自己的格式模式字符串。这很好,因为编写正确的格式模式总是容易出错。

我建议您使用 java.time(现代 Java 日期和时间 API)来处理所有日期和时间工作。

教程链接

Oracle 教程:日期时间解释如何使用 java.time。