Java Api以数字形式返回日期时间如何使其成为正确的日期?
我使用的是一个外部api(使用MongoDB),它会向我发送如下日期格式:Java Api以数字形式返回日期时间如何使其成为正确的日期?,java,json,mongodb,spring-boot,Java,Json,Mongodb,Spring Boot,我使用的是一个外部api(使用MongoDB),它会向我发送如下日期格式: "documentDate": 1574283600000, 03/12/2019 我认为它的日期是: "documentDate" : ISODate("2019-02-28T00:00:00.000+03:00"), 但它会给我返回数字。我怎样才能让它成为这样一个合适的日期: "documentDate": 1574283600000, 03/12/2019 我将使用java.time,因为该值看起来像(而
"documentDate": 1574283600000,
03/12/2019
我认为它的日期是:
"documentDate" : ISODate("2019-02-28T00:00:00.000+03:00"),
但它会给我返回数字。我怎样才能让它成为这样一个合适的日期:
"documentDate": 1574283600000,
03/12/2019
我将使用
java.time
,因为该值看起来像(而且很可能是)一个以历元毫秒计的时间点。您可以将其转换为即时
,然后进一步将其转换为可识别偏移量或时区的datetime对象
看看这个:
public static void main(String[] args) {
// your sample millis
long documentDateInMillis = 1574283600000L;
// parse it to a moment in time: an Instant
Instant instant = Instant.ofEpochMilli(documentDateInMillis);
// then create an offset aware datetime object by adding an actual offset
OffsetDateTime odt = OffsetDateTime.ofInstant(instant, ZoneOffset.of("+03:00"));
// print it in the default representation
System.out.println("Default formatting:\t" + odt);
// or in an ISO representation of the date only
System.out.println("ISO local date:\t\t"
+ odt.format(DateTimeFormatter.ISO_LOCAL_DATE));
// or in a custom representation (date only, too)
System.out.println("Custom formatting:\t"
+ odt.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
}
输出如下:
默认格式:2019-11-21T00:00+03:00
ISO本地日期:2019-11-21
自定义格式:2019年11月21日
我希望您的值示例不代表完全相同的日期或瞬间……在我看来,api返回的时间是1970年1月1日以来的毫秒。有数学来转换这样的东西。@deHaar不,它们不一样,只是一个例子谢谢你的回答,我不知道这是毫秒格式,我在这里找到了一个答案:I