如何以给定格式获取日期?
这是我想要做的:
- 取今天的日期(比如 2021-07-07)
- 将其格式化为 (2021-07-07T00:00:00.000Z)
- 在 API 中发送
我找不到一种简单的方法来转换2021-07-07为2021-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 的更多信息。