Как получить местное время в виде отформатированной строки в Lua - PullRequest
1 голос
/ 02 апреля 2019

Мне нужна строка даты и времени, отформатированная как %Y-%m-%d %H:%M:%S.

Я не могу понять, как использовать стандартные функции Lua os.date() и os.time() для достижения этого.

Ответы [ 2 ]

5 голосов
/ 02 апреля 2019

os.date - это функция, которую вы ищете.Его первый необязательный параметр format делает то, что вы хотите:

os.date('%Y-%m-%d %H:%M:%S')
--> 2019-04-02 10:50:52

Из руководства Lua 5.3 по os.date:

os.date ([format [, time]])

Возвращает строку или таблицу, содержащую дату и время, отформатированные в соответствии с заданным форматом строки.

Если формат начинается с '!', Тогда дата равнаотформатировано в формате всемирного координированного времени.

Если формат не "* t", тогда date возвращает дату в виде строки, отформатированной в соответствии с теми же правилами, что и функция ISO C strftime.

Вы можете узнать больше о правилах форматирования C's strftime здесь .

В случае, если по какой-либо причине вы не получаете местное время, выможно просто добавить необходимое смещение.

local timeShift = 3 * 60 * 60  -- +3 hours
os.date('%Y-%m-%d %H:%M:%S', os.time() + timeShift)
--> 2019-04-02 18:24:15 for 15:24:15 UTC
0 голосов
/ 02 апреля 2019

Я использую lib https://github.com/Tieske/date. Получить местное время -

date(true):addminutes("your offset"):fmt('%Y-%m-%d %H:%M:%S'),

...