OS Time
OS Time
Seção intitulada “OS Time”Funções de tempo padrão Lua os. Fornece tempo de relogio de parede real para timestamps, formatação de datas e calculos de tempo.
Carregamento
Seção intitulada “Carregamento”Tabela global os. Nenhum require necessario.
os.time()os.date()os.clock()os.difftime()Obtendo Timestamps
Seção intitulada “Obtendo Timestamps”Obter timestamp Unix (segundos desde 1 de Jan, 1970 UTC):
-- Timestamp atuallocal now = os.time() -- 1718462445
-- Data/hora específicalocal t = os.time({ year = 2024, month = 12, day = 25, hour = 10, min = 30, sec = 0})Assinatura: os.time([spec]) -> number
Parametros:
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
year | number | ano atual | Ano de 4 digitos (ex: 2024) |
month | number | mes atual | Mes 1-12 |
day | number | dia atual | Dia do mes 1-31 |
hour | number | 0 | Hora 0-23 |
min | number | 0 | Minuto 0-59 |
sec | number | 0 | Segundo 0-59 |
Quando chamado sem argumentos, retorna timestamp Unix atual.
Quando chamado com uma tabela, qualquer campo ausente usa os padroes mostrados acima. Os campos year, month e day usam a data atual se não específicados.
-- Apenas data (hora padrão e meia-noite)os.time({year = 2024, month = 6, day = 15})
-- Parcial (preenche ano/mes atual)os.time({day = 1}) -- primeiro do mes atualFormatando Datas
Seção intitulada “Formatando Datas”Formatar um timestamp como string ou retornar uma tabela de data:
— Formato padrão os.date() — “Sat Jun 15 14:30:45 2024”
— Formato customizado os.date(“%Y-%m-%d”, now) — “2024-06-15” os.date(“%H:%M:%S”, now) — “14:30:45” os.date(“%Y-%m-%dT%H:%M:%S”, now) — “2024-06-15T14:30:45”
— Hora UTC (prefixar formato com !) os.date(”!%Y-%m-%d %H:%M:%S”, now) — UTC ao inves de local
— Tabela de data local t = os.date(“*t”, now)
Assinatura: os.date([format], [timestamp]) -> string | table
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
format | string | "%c" | String de formato, "*t" para tabela |
timestamp | number | hora atual | Timestamp Unix para formatar |
Específicadores de Formato
Seção intitulada “Específicadores de Formato”| Código | Saida | Exemplo |
|---|---|---|
%Y | Ano 4 digitos | 2024 |
%y | Ano 2 digitos | 24 |
%m | Mes (01-12) | 06 |
%d | Dia (01-31) | 15 |
%H | Hora 24h (00-23) | 14 |
%I | Hora 12h (01-12) | 02 |
%M | Minuto (00-59) | 30 |
%S | Segundo (00-59) | 45 |
%p | AM/PM | PM |
%A | Nome do dia | Saturday |
%a | Dia abreviado | Sat |
%B | Nome do mes | June |
%b | Mes abreviado | Jun |
%w | Dia da semana (0-6, Domingo=0) | 6 |
%j | Dia do ano (001-366) | 167 |
%U | Numero da semana (00-53) | 24 |
%z | Offset de fuso horario | -0700 |
%Z | Nome do fuso horario | PDT |
%c | Data/hora completa | Sat Jun 15 14:30:45 2024 |
%x | Apenas data | 06/15/24 |
%X | Apenas hora | 14:30:45 |
%% | % literal | % |
Tabela de Data
Seção intitulada “Tabela de Data”Quando formato e "*t", retorna uma tabela:
local t = os.date("*t")| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
year | number | Ano 4 digitos | 2024 |
month | number | Mes (1-12) | 6 |
day | number | Dia do mes (1-31) | 15 |
hour | number | Hora (0-23) | 14 |
min | number | Minuto (0-59) | 30 |
sec | number | Segundo (0-59) | 45 |
wday | number | Dia da semana (1-7, Domingo=1) | 7 |
yday | number | Dia do ano (1-366) | 167 |
isdst | boolean | Horario de verao | false |
Use "!*t" para tabela de data UTC.
Medindo Tempo Decorrido
Seção intitulada “Medindo Tempo Decorrido”Obter segundos decorridos desde o inicio do runtime Lua:
local start = os.clock()
-- fazer trabalhofor i = 1, 1000000 do end
local elapsed = os.clock() - startprint(string.format("Levou %.3f segundos", elapsed))Assinatura: os.clock() -> number
Diferenca de Tempo
Seção intitulada “Diferenca de Tempo”Obter diferenca entre dois timestamps em segundos:
local t1 = os.time({year = 2024, month = 1, day = 1})local t2 = os.time({year = 2024, month = 12, day = 31})
local diff = os.difftime(t2, t1) -- t2 - t1local days = diff / 86400print(days) -- 365Assinatura: os.difftime(t2, t1) -> number
| Parâmetro | Tipo | Descrição |
|---|---|---|
t2 | number | Timestamp posterior |
t1 | number | Timestamp anterior |
Retorna t2 - t1 em segundos. Pode ser negativo se t1 > t2.
Constante de Plataforma
Seção intitulada “Constante de Plataforma”Constante identificando o runtime:
os.platform -- "wippy"