Функция os.date не возвращает желаемых результатов
Я вставляю строковую переменную в мою таблицу MySQL, используя это os.date()
вызов функции:
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 часов.
Согласно книге Луа Пила,
%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
и, похоже, мне придется вернуться обратно.
1 ответ
Я думаю, что нашел ошибку в поведении.
Я думаю, что это может быть потому, что PtokaX написан на C, а затем через него вызываются скрипты lua. Поскольку strftime определяет %X
как
записывает локализованное представление времени (зависит от локали)
Это приводит к выводу времени в 12-часовом формате вместо 24-часового. Я все еще должен буду проверить это после 12:00 сегодня.
PS
Я не знаю как проверить locale
формат даты, но я предполагаю, что это единственная действительная причина для такого поведения.
Я снова переключился на использование os.date( "%Y-%m-%d %X" )
в моих сценариях.