我正在将包含 Swift 中生成的 Date() 变量的编码数据发布到节点后端。
我正在编码的示例对象:
Swift:
let appointmentEncoded = try JSONEncoder().encode(appointment)
生成以下 JSON 字符串:
[556959600,{"type":"car-wash","date_interval":{"start":557031600,"duration":1800}]
“556959600”是感兴趣的编码 Date() 对象。我能够成功地将其传递到节点后端进行检索。
我想做的是将日期对象解码为 JavaScript 日期,并将其编码回日期字符串,然后我可以将其传回 Swift。
有没有办法将“556959600”值转换为 JavaScript 日期?如果是这样,我如何将其转换回“556959600”类型值?
最佳答案
看来 Swift 时间值是自 2001-01-01(Swift 纪元)以来的秒数。 JavaScript 时间值自 1970 年 1 月 1 日起以毫秒为单位,因此您可以将 Swift 时间值乘以 1000 使其变为毫秒,然后添加两个时间值之间的差值以获得等效的 JavaScript 时间值。
然后用它来创建一个日期,所以:
var swiftOffset = Date.UTC(2001,0,1); // 978307200000
var swiftTV = 556959600; // Seconds since 2001-01-01
var jsDate = new Date(swiftOffset + swiftTV * 1000);
console.log(jsDate.toString());
关于javascript - 在 NodeJS/JavaScript 中使用 iOS Swift Date(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996707/