mysql - os.date 函数没有返回期望的结果

标签 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 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/

相关文章:

c - 嵌入 Lua 5.2 和定义库

c++ - 为 C++ 构建 Lua

Java - 序列化/反序列化日期时出错

mysql:基于另外两行的值运行插入

mysql - 带有 AUTO_INCREMENT 列的 MySQL 表中简单 SELECT 的默认顺序是什么

PHP/MySQL - 将两个表组合成一个数组

java - hibernate控制台配置在数据库连接中找不到jdbc驱动程序

string - Lua:string.rep嵌套在string.gsub中?

javascript - 如何将日期选择器返回的日期格式转换为其他格式?

java - 如何在Gson中使用@SerializedName编辑日期格式?