Tiempo de OS
Tiempo de OS
Sección titulada «Tiempo de OS»Funciones de tiempo os estandar de Lua. Proporciona tiempo de reloj de pared real para marcas de tiempo, formato de fechas y calculos de tiempo.
Tabla global os. No se necesita require.
os.time()os.date()os.clock()os.difftime()Obtener Marcas de Tiempo
Sección titulada «Obtener Marcas de Tiempo»Obtener marca de tiempo Unix (segundos desde 1 de Enero, 1970 UTC):
-- Marca de tiempo actuallocal now = os.time() -- 1718462445
-- Fecha/hora especificalocal t = os.time({ year = 2024, month = 12, day = 25, hour = 10, min = 30, sec = 0})Firma: os.time([spec]) -> number
Parametros:
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
year | number | ano actual | Ano de cuatro digitos (ej., 2024) |
month | number | mes actual | Mes 1-12 |
day | number | dia actual | Dia del mes 1-31 |
hour | number | 0 | Hora 0-23 |
min | number | 0 | Minuto 0-59 |
sec | number | 0 | Segundo 0-59 |
Cuando se llama sin argumentos, devuelve la marca de tiempo Unix actual.
Cuando se llama con una tabla, cualquier campo faltante usa los valores predeterminados mostrados arriba. Los campos year, month y day usan la fecha actual si no se especifican.
-- Solo fecha (hora predeterminada a medianoche)os.time({year = 2024, month = 6, day = 15})
-- Parcial (rellena ano/mes actual)os.time({day = 1}) -- primero del mes actualFormatear Fechas
Sección titulada «Formatear Fechas»Formatear una marca de tiempo como string o devolver una tabla de fecha:
— Formato predeterminado os.date() — “Sat Jun 15 14:30:45 2024”
— Formato personalizado 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 (prefijo de formato con !) os.date(”!%Y-%m-%d %H:%M:%S”, now) — UTC en lugar de local
— Tabla de fecha local t = os.date(“*t”, now)
Firma: os.date([format], [timestamp]) -> string | table
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | string | "%c" | String de formato, "*t" para tabla |
timestamp | number | tiempo actual | Marca de tiempo Unix a formatear |
Especificadores de Formato
Sección titulada «Especificadores de Formato»| Código | Salida | Ejemplo |
|---|---|---|
%Y | Ano de 4 digitos | 2024 |
%y | Ano de 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 | Nombre de dia de semana | Saturday |
%a | Dia de semana corto | Sat |
%B | Nombre de mes | June |
%b | Mes corto | Jun |
%w | Dia de semana (0-6, Domingo=0) | 6 |
%j | Dia del ano (001-366) | 167 |
%U | Número de semana (00-53) | 24 |
%z | Offset de zona horaria | -0700 |
%Z | Nombre de zona horaria | PDT |
%c | Fecha/hora completa | Sat Jun 15 14:30:45 2024 |
%x | Solo fecha | 06/15/24 |
%X | Solo hora | 14:30:45 |
%% | Literal % | % |
Tabla de Fecha
Sección titulada «Tabla de Fecha»Cuando el formato es "*t", devuelve una tabla:
local t = os.date("*t")| Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
year | number | Ano de cuatro digitos | 2024 |
month | number | Mes (1-12) | 6 |
day | number | Dia del 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 de semana (1-7, Domingo=1) | 7 |
yday | number | Dia del ano (1-366) | 167 |
isdst | boolean | Horario de verano | false |
Use "!*t" para tabla de fecha UTC.
Medir Tiempo Transcurrido
Sección titulada «Medir Tiempo Transcurrido»Obtener segundos transcurridos desde que inicio el runtime de Lua:
local start = os.clock()
-- hacer trabajofor i = 1, 1000000 do end
local elapsed = os.clock() - startprint(string.format("Tomo %.3f segundos", elapsed))Firma: os.clock() -> number
Diferencia de Tiempo
Sección titulada «Diferencia de Tiempo»Obtener diferencia entre dos marcas de tiempo en 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) -- 365Firma: os.difftime(t2, t1) -> number
| Parámetro | Tipo | Descripción |
|---|---|---|
t2 | number | Marca de tiempo posterior |
t1 | number | Marca de tiempo anterior |
Devuelve t2 - t1 en segundos. Puede ser negativo si t1 > t2.
Constante de Plataforma
Sección titulada «Constante de Plataforma»Constante que identifica el runtime:
os.platform -- "wippy"