我正在使用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
似乎,我将不得不恢复。
答案 0 :(得分:1)
我想我发现了行为中的错误。
我认为这可能是因为PtokaX是用C语言编写的,然后通过它调用lua脚本。因此,strftime将%X
定义为
写入本地化时间表示(依赖于语言环境)
这会使时间输出为12小时格式,而不是24小时。我今天下午12点后还要测试它。
我不知道如何检查locale
日期格式,但我认为这是导致此行为的唯一有效原因。
我在我的脚本中切换回使用os.date( "%Y-%m-%d %X" )
。