0

我正在使用此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 的一个属性,并且从 1.1.1970 开始作为用户登录时间(以秒为单位)给出。

这里有什么问题?一个简单的lua代码

print( os.date("%Y-%m-%d %X", 1355586777) )

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

我曾经有过%H:%M:%S%X但我想到了使用%X,看来,我必须恢复原状。

4

1 回答 1

1

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

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

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

这会导致时间输出为 12 小时格式,而不是 24 小时。今天中午 12 点之后我仍然要测试它。

附言

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


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

于 2013-01-30T23:30:52.253 回答