Os.date (Lua)

Материал из UoPilot
Перейти к навигации Перейти к поиску

Описание

os.date - возвращает дату и время в виде строки или таблицы. Первым аргументом принимает формат, вторым аргументом принимает время в секундах. Если не передать 2-й аргумент, функция вернет текущие дату и время. Если функцию вызвать без аргументов, то она вернет текущие дату/время в виде 24/06/17 15:13:58.

Синтаксис

Привязка к окну: нет.
Работа со свернутым окном: да.
Все параметры заключаются в скобки и разделяются запятыми.

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

Где:
format - необязательный параметр. Заключается в кавычки (например: os.date("%X")). Если формат равен "*t", возвращает таблицу:

year (год, четыре цифры)
month (месяц, 1 – 12)
day (день, 1 – 31)
hour (час, 0 – 23)
min (минуты, 0 – 59)
sec (секунды, 0 – 61)
wday (день недели, воскресенью соответствует 1)
yday (день года)
isdst (флаг дневного времени суток, тип boolean).

Если формат не равен "*t", то функция возвращает дату в виде строки.
Формат может быть задан:

%a   - день недели, сокращённо англ.
%A   - день недели, полностью англ.
%b   - месяц, сокращённо англ.
%B   - месяц, полностью англ.
%c   - дата и время (по-умолчанию) в формате: 24/06/17 15:13:58)
%d   - день месяца
%H   - час, в 24-х часовом формате
%I   - час, в 12-и часовом формате
%M   - минута
%m   - месяц 
%p   - время суток "am", или "pm"
%S   - секунда 
%w   - день недели (0 - 6 соответствует Sunday-Saturday)
%x   - дата в формате: 24/06/17
%X   - время в формате: 15:13:58
%Y   - год (4 цифры)
%y   - год, (2 цифры)
%%   - символ "%"
*t   - вернет таблицу
!*t  - вернет таблицу (по Гринвичу)

time - необязательный параметр. Если не указан функция вернёт текущее время.

Примеры

--lua
log ("clear") log ("mode compact")
local date_time = os.date()     -- присвоить переменной дату и время
log (date_time)           -- вывести в лог  
--lua
log ("clear") log ("mode compact")
local arr = os.date("*t")

log ("Год: " .. arr.year)
log ("Месяц: " .. arr.month)
log ("День: " .. arr.day)
log ("Час: " .. arr.hour)
log ("Минуты: " .. arr.min)
log ("Секунды: " .. arr.sec)
log ("День недели: " .. arr.wday)
log ("День года: " .. arr.yday)
--lua
log (os.date("%X"))       -- вывести в лог текущее время
log (os.date("%B"))       -- месяц
log (os.date("%H"))       -- час
log (os.date("%H:%M"))    -- час  и минуты
--lua
-- функция возвращает тип данных string, это нужно учитывать при сравнении
if os.date("%H") == "12" then      -- сравнить как строку
    log ("Сейчас  12 часов")
else
    log ("Сейчас не 12 часов")
end

if tonumber(os.date("%H")) == 12 then      -- сравнить как число
    log ("Сейчас  12 часов")
else
    log ("Сейчас не 12 часов")
end
--lua
-- узнать день недели
log(os.date("%A",os.time({ year=2017, month = 06, day = 25})))
--lua
log(os.date("%d.%m.%Y"))   -- текущая дата
--lua
log(os.date("Сейчас %H часов %M минут %S секунд"))


Смотрите также

os.time (Lua)
os.clock (Lua)