首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.time.Instant对JavaScript日期的响应

java.time.Instant对JavaScript日期的响应
EN

Stack Overflow用户
提问于 2021-04-13 05:56:14
回答 1查看 931关注 0票数 1

我有一个Spring服务器,它返回日期如下:

代码语言:javascript
复制
{
  // Some keys
  pickupDate: {
    epochSecond: 1612199331,
    nano: 428000000
  },
  // Some other keys
}

如何将该对象转换为JavaScript日期?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 06:07:41

tl;dr

代码语言:javascript
复制
new Date( ( 1_612_199_331 * 1_000 ) + ( 428_000_000 / 1_000_000 ) ) 

Java

如果这些值来自Java8的java.time类中的对象,以及更高版本的Instant,那么:

  • epochSecond表示自1970年第一时刻的时代基准以来的整秒数,如世界协调时,1970-01-01T00:00Z所示。
  • nano将分数秒表示为纳秒的计数,即十亿分之一秒。

JavaScript

虽然我不知道JavaScript,但似乎大多数实现都提供了Date类型。Date表示在UTC中基于与java.time相同时代引用的计数所显示的时刻。

不同的是分数秒的粒度。JavaScript Date使用毫秒,而不是java.time中的纳秒。所以你需要把纳诺的数量除以1,000,000才能得到米利斯。

把整个秒乘以一千,得到毫秒。再除以纳诺数一百万,得到毫秒。和,以获得自历元引用以来的总毫秒数。传递到Date

代码语言:javascript
复制
const d = 
        new Date( 
          ( 1_612_199_331 * 1_000 ) 
          + 
          ( 428_000_000 / 1_000_000 ) 
        )
;

使用标准的Date格式生成表示存储在该ISO 8601中的瞬间的文本。

代码语言:javascript
复制
const d = new Date( ( 1_612_199_331 * 1_000 ) + ( 428_000_000 / 1_000_000 ) ) ;
console.log( d.toISOString() ) ;

2021-02-01T17:08:51.428Z

结尾的Z表示从世界协调时起,偏移为零小时-分-秒.发音为“祖鲁”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67069402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档