gpt4 book ai didi

node.js - 使用 thrift 时 Node.js 中的纪元日期不正确

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:00 24 4
gpt4 key购买 nike

我似乎在 node.js 中为 thrift 对象获取了与存储在 mongo 数据库中并由服务返回的值不同的纪元日期值

Thrift定义文件(thrift v0.9.0),我有

struct Profile {
...
4: i64 createDate,
5: i64 lastUpdateDate

Mongo记录

"createdTimestamp" : NumberLong("1366334385361"),
"lastUpdatedTimestamp" : NumberLong("1366334385361")

Node 报告

createDate: 534785233,
lastUpdateDate: 534785233

生成的 Node thrift客户端似乎引用了I64。

if (this.createDate !== null && this.createDate !== undefined) {
output.writeFieldBegin('createDate', Thrift.Type.I64, 14);
output.writeI64(this.createDate);
output.writeFieldEnd();
}

我很欣赏任何随之而来的见解。

谢谢

最佳答案

给定数字的二进制表示为:

1366334385361  ->  10011111000011111111000000010110011010001
534785233 -> 00000000000011111111000000010110011010001

即如果你取 1366334385361 的低 32 位,你会得到 534785233。所以在你正在使用的程序或包中的某个地方,它被转换/截断为 32 位整数,例如int(1366334385361)

关于node.js - 使用 thrift 时 Node.js 中的纪元日期不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com