Api 将日期时间作为数字返回,我怎样才能使它成为正确的日期?

Posted

技术标签:

【中文标题】Api 将日期时间作为数字返回,我怎样才能使它成为正确的日期?【英文标题】:Api returns date-time as numbers how can I make it a proper date? 【发布时间】:2020-07-03 18:17:02 【问题描述】:

我正在使用一个外部 api(使用 MongoDB),它向我发送这样的日期格式:

"documentDate": 1574283600000,

我认为它的日期为:

"documentDate" : ISODate("2019-02-28T00:00:00.000+03:00"),

但它返回给我数字。我怎样才能使它成为这样一个合适的日期:

03/12/2019

【问题讨论】:

我希望您的价值示例不代表相同的日期或瞬间...... 在我看来,api 以毫秒为单位返回自 01.01.1970 以来的时间。有数学可以转换这样的东西。 @deHaar 不,它们不一样,只是一个例子 感谢您的回答,我不知道这是毫秒格式,我在这里找到了答案:***.com/questions/12504537/…I 【参考方案1】:

我会使用java.time,因为该值看起来像(并且很可能是)被计为纪元毫秒的时刻。您可以将其转换为Instant,然后进一步将其转换为知道偏移量或时区的日期时间对象。

看看这个:

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")));

输出如下:

Default formatting: 2019-11-21T00:00+03:00
ISO local date:     2019-11-21
Custom formatting:  21/11/2019

【讨论】:

以上是关于Api 将日期时间作为数字返回,我怎样才能使它成为正确的日期?的主要内容,如果未能解决你的问题,请参考以下文章

UIImagePickerController 允许选择方形图像。但是我怎样才能使它成为 16:9?

UICollectionView 太宽。我怎样才能使它成为设备的宽度?

鼠标拖动选择不适用于触摸设备。我怎样才能使它成为可能?

PHP adodb COM 记录集返回变体:日期/时间的__set_state,我怎样才能将它们作为字符串获取?

我正在使用 jQuery 进行图像预览。但是我无法发布预览后单击的数据。我怎样才能使它成为现实?

我怎样才能使它如此这个java程序将读取二进制文件的其余部分,而不是添加额外的空格?