1

我正在用 lua 编写一个 Wireshark 解析器并尝试解码基于时间的协议字段。

我有两个组件 1)

local ref_time = os.time{year=2000, month=1, day=1, hour=0, sec=0}

和 2)

local offset_time = tvbuffer(0:5):bytes()

一个 5 字节(大于 uint32 范围)ByteArray(),包含自ref_time以来的毫秒数(按网络字节顺序) 。现在我正在寻找一个人类可读的日期。我不知道这会这么难,但第一个似乎我不能简单地向os.time值添加偏移量,第二个偏移量超出Int32范围......我测试的大多数功能似乎截断了超出的输入值。

关于如何从ref_timeoffset_time获取日期的任何想法?

非常感谢!

4

1 回答 1

2

由于ref_time以秒offset_time为单位,以毫秒为单位,请尝试:

os.date("%c",ref_time+offset_time/1000)

我假设这offset_time是一个数字。如果没有,只需使用算术重建它。请记住,Lua 使用双精度数表示数字,因此 5 字节整数非常适合。

于 2013-11-22T11:56:33.130 回答