1
我正在lua编写一个Wireshark解剖器并试图解码基于时间的协议字段。添加一个大的偏移量os.time {}值
我已经含有的毫秒数两种组分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_time和offset_time?
非常感谢!
谢谢。使用os.date确实有帮助......但offset_time是一个(十六进制)ByteArray ..内部函数不适用于5字节整数(仅4和8),并且不支持算术运算。 **尝试对用户数据值执行算术运算** – Hhut
@Hhut,如果您可以从'offset_time'中提取单个字节,只需执行像'b0 + 256 *(b1 + 256 *(b2 + 256 *( b3 + 256 * b4)))'或以其他顺序。 – lhf
谢谢......我会设法做到这一点,我只需要将毫秒数转换为秒数转换......现在不要为什么,但我的lua或wireshark api仅限于32位。 '局部高=块(0,1):UINT()* 4294967 - (1 << 32)/ 1000 \t \t \t \t \t \t \t局部低=块(1,4):UINT()/ 1000 \t \t \t \t \t \t \t local tval = high + low' – Hhut