我使用此 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
implies time (e.g., 23:48:10)
我无法在查询中使用 NOW()
作为 Core.GetUserValue(v, 25)
生成的时间是 PtokaX 的一个属性,以自 1970 年 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
,看起来,我得回去了。
最佳答案
我想我发现了行为中的错误。
我认为这可能是因为PtokaX是用C编写的,然后通过它调用lua脚本。因为,strftime将 %X
定义为
writes localized time representation (locale dependent)
这会导致时间输出采用 12 小时格式,而不是 24 小时格式。今天中午 12 点之后我仍然需要测试它。
附注
我不知道如何检查区域设置
日期格式,但我假设这是导致此行为的唯一有效原因。
我在脚本中切换回使用 os.date( "%Y-%m-%d %X")
。
关于mysql - os.date 函数没有返回期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615582/