首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java OffsetDateTime解析为JS日期

将Java OffsetDateTime解析为JS日期
EN

Stack Overflow用户
提问于 2018-11-09 23:59:11
回答 1查看 1.2K关注 0票数 1

在我的JS基础微服务中,我以某种方式从内部使用OffSetDateTime的java微服务中获得了以下JSON。

代码语言:javascript
复制
{
   "eventTime":   "eventTime":{
      "offset":{
         "totalSeconds":0,
         "id":"Z",
         "rules":{
            "fixedOffset":true,
            "transitions":[

            ],
            "transitionRules":[

            ]
         }
      },
      "year":2018,
      "month":"NOVEMBER",
      "dayOfMonth":9,
      "dayOfWeek":"FRIDAY",
      "dayOfYear":313,
      "monthValue":11,
      "hour":5,
      "minute":57,
      "second":21,
      "nano":716000000
   }
}

而不是仅仅

代码语言:javascript
复制
{"eventTime" :"2018-11-09T05:57:21.716Z" }

如何在JS中解析它?下面给出了NaN

代码语言:javascript
复制
Date.parse(eventTime)

其中eventTime是上面提到的第一个字符串。

EN

回答 1

Stack Overflow用户

发布于 2018-11-10 00:11:49

您需要手动解析它。像这样的东西将会起作用:

代码语言:javascript
复制
var res = {
   "eventTime":{
      "offset":{
         "totalSeconds":0,
         "id":"Z",
         "rules":{
            "fixedOffset":true,
            "transitions":[

            ],
            "transitionRules":[

            ]
         }
      },
      "year":2018,
      "month":"NOVEMBER",
      "dayOfMonth":9,
      "dayOfWeek":"FRIDAY",
      "dayOfYear":313,
      "monthValue":11,
      "hour":5,
      "minute":57,
      "second":21,
      "nano":716000000
   }
};
var d = new Date(
  res.eventTime.year, 
  res.eventTime.monthValue - 1, 
  res.eventTime.dayOfMonth, 
  res.eventTime.hour, 
  res.eventTime.minute, 
  res.eventTime.second,
  res.eventTime.nano/1000000
);

alert(d.getTime());

Javascript不支持纳秒。仅支持毫秒以下的粒度。

此外,月份来自0 - 11,因此,您需要对本例中的Month值执行value - 1

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

https://stackoverflow.com/questions/53229186

复制
相关文章

相似问题

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