如何将Java long解释为Lua数字以将时代转换为人类可读格式

_Program1_,用Java编写,以_EPOCH_格式将日期写入Redis。

_Program2_,用Lua编写,以_EPOCH格式从Redis中读取日期并尝试将其转换为人类可读格式。

问题在于,根据我所知,时代日期被写成Java Long,我需要在LUA脚本中实现的转换在Java中可以无缝进行。

> import java.util.Date
> import java.text.SimpleDateFormat

> String redisEpochDate = "1451608885000"
> new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(new Date(redisEpochDate.toLong))

> 01-01-2016 06:11:25

但是,当我在Lua中尝试同样的事情时,我得到了错误的结果。

> printos.date"%x"tonumber"1451608885000")))
> 08/27/69

这是由于epoch字符串中有3个尾随的0。如果我重新尝试同样的事情而没有尾随的0,我会得到正确的结果。

> printos.date"%x"tonumber"1451608885")))
> 01/01/16

我的问题是如何处理这样的epoch字符串1451608885000在Lua中获得理想的结果,因为这不是我控制的东西?

_请让我知道这是否是正确的问题或者这个问题需要更好的表达方式_。

点赞