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,我怎样才能将它们作为字符串获取?