如何以给定格式获取日期?

这是我想要做的:

  1. 取今天的日期(比如 2021-07-07)
  2. 将其格式化为 (2021-07-07T00:00:00.000Z)
  3. 在 API 中发送

我找不到一种简单的方法来转换2021-07-072021-07-07T00:00:00.000Z. 我们当然可以附加T00:00:00.000Z字符串,但我想避免这种情况。

到目前为止,我拥有的每种方法(使用 LocalDate、LocalDateTime、Instant、Date)都涉及使用时区 (ZoneId) 或转​​换为 Epoch,它们最终只给出响应直到几秒钟而不是几毫秒。

我相信一定有更简单的方法。

编辑 1:传递区域 ID 不是问题,我们可以做到。

回答

你需要

LocalDate.now()
    .atStartOfDay(ZoneOffset.UTC)
    .format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH))

演示:

import java.time.LocalDate;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        System.out.println(
            LocalDate.now()
                .atStartOfDay(ZoneOffset.UTC)
                .format(DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSX", Locale.ENGLISH))
        );
    }
}

ONLINE DEMO

Trail: Date Time 中了解有关现代日期时间 API 的更多信息。


以上是如何以给定格式获取日期?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>