1 回答
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
TA贡献1836条经验 获得超13个赞
从你的评论:
LISK Coin 的 API 正在返回这些值。
这有帮助。虽然在 LISK 的文档中并不清楚,但在 Reddit 的 LISK 论坛上进行了一些搜索,发现了这篇文章,其中说:
应用链中的时间戳是应用链创世块创建以来的秒数。Lisk 创世区块创建于 2016 年 5 月 24 日。
然后它继续显示精确的创世日期2016-05-24T17:00:00.000Z (UTC)。
因此,我们可以这样做:
var dt = new Date("2016-05-24T17:00:00.000Z"); // start with the LISK genesis date
dt.setTime(dt.getTime() + (2346273 * 1000)); // add your timestamp * 1000 (seconds to ms)
您现在有一个Date正确表示该时间点的对象。如果您调用.toString()它,它将使用计算机的本地时区来生成输出字符串。
对我来说,在美国太平洋时区:
dt.toString()
// "Mon Jun 20 2016 13:44:33 GMT-0700 (Pacific Daylight Time)"
如果我将时区更改为印度,那么我将获得您提供的日期和时间:
dt.toString()
// "Tue Jun 21 2016 02:14:33 GMT+0530 (India Standard Time)"
通过直接提供印度的区域设置代码和时区 ID,我还可以在不更改系统时区的情况下以更紧凑的格式获得此信息:
dt.toLocaleString('en-IN', {timeZone: 'Asia/Kolkata'})
// "21/6/2016, 2:14:33 am"
或者,如果您想要 ISO 8601 格式的确切 UTC 时间戳,则
dt.toISOString()
// "2016-06-20T20:44:33.000Z"
另一件需要注意的事情 - 您链接到的文档中没有提到这个创世时间戳。在那些文档中,它说这个值是一个常规的 Unix 时间戳。Unix 时间戳基于1970-01-01T00:00:00.000Z,而不是基于2016-05-24T17:00:00.000Z。因此,要么他们的文档是错误的,要么他们指的是比您使用的文档更新的内容。
添加回答
举报