os.date函数未返回所需的结果

时间:2013-01-30 23:08:36

标签: mysql lua date-format luasql ptokax

我正在使用os.date()函数调用将一个字符串变量插入到我的MySQL表中:

tSend["sDate"] = os.date( "%Y-%m-%d %X", Core.GetUserValue(v, 25) )

表tSend被转发到另一个函数,该函数将其插入表中。

这不符合要求。例如。它会在表格中插入 2013-01-31 12:59:59 而不是 2013-01-31 00:59:59 。它发生在1159小时后的所有时间。

根据Lua PiL书,

  

%X 暗示时间(例如,23:48:10)

我无法在我的查询中使用NOW(),因为Core.GetUserValue(v, 25)生成的时间是PtokaX的属性,并且以用户登录时间(以秒为单位)从1990年1月1日开始

这可能是什么问题?一个带

的简单lua代码
print( os.date("%Y-%m-%d %X", 1355586777) )

生成 2012-12-15 21:22:57 作为输出(其中 1355586777 是我从Core.GetUserValue来电中收到的值)。

我过去常常使用%H:%M:%S代替%X,但我想使用%X似乎,我将不得不恢复。

1 个答案:

答案 0 :(得分:1)

我想我发现了行为中的错误。

我认为这可能是因为PtokaX是用C语言编写的,然后通过它调用lua脚本。因此,strftime%X定义为

  

写入本地化时间表示(依赖于语言环境)

这会使时间输出为12小时格式,而不是24小时。我今天下午12点后还要测试它。

P.S。

我不知道如何检查locale日期格式,但我认为这是导致此行为的唯一有效原因。


我在我的脚本中切换回使用os.date( "%Y-%m-%d %X" )