1 回答

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。因此,要么他們的文檔是錯誤的,要么他們指的是比您使用的文檔更新的內容。
添加回答
舉報