os.time y os.date
Obtenga la hora actual
os.time y os.date es una lección gratuita de Lua Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Lua Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Lua Academy incluye 4 lecciones en total.
Por qué importa el tiempo
Los programas a menudo necesitan conocer la hora actual. Un juego registra cuándo ha conseguido una puntuación, un archivo de registro marca la hora de cada evento y una aplicación de recordatorios cuenta el tiempo restante hasta una fecha límite.
Lua incluye sus herramientas de tiempo en la biblioteca integrada os. Las dos funciones principales son os.time y os.date. En esta lección conocerá ambas.
os.time devuelve un número
os.time() sin argumentos devuelve el instante actual como un único número.
Ese número es la cantidad de segundos transcurridos desde un punto fijo del pasado, llamado época. Es simplemente un entero, por lo que puede almacenarlo, compararlo o hacer cálculos con él.
local now = os.time()
print(now)
print(type(now))La época
En la mayoría de los sistemas, la época es la medianoche del 1 de enero de 1970, en UTC. Por tanto, os.time() le indica cuántos segundos han transcurrido desde entonces.
Un número grande como 1700000000 es normal. Aumenta en uno cada segundo, lo que lo hace perfecto para comparar dos instantes.
local seconds = os.time()
print("Seconds since 1970:", seconds)os.date devuelve texto
Una cantidad de segundos sin formato es difícil de leer. os.date() convierte el tiempo en un texto fácil de entender.
Si se llama sin argumentos, devuelve una cadena legible que describe la fecha y hora actuales, usando la configuración local de su sistema.
print(os.date())os.date con un formato
Normalmente se pasa a os.date una cadena de formato. Los códigos especiales que comienzan por % se sustituyen por partes de la fecha.
%Y representa el año de cuatro dígitos, %m, el mes, y %d, el día. El resto del texto permanece igual.
print(os.date("Year: %Y"))
print(os.date("%Y-%m-%d"))Combinar hora y fecha
os.date puede recibir un segundo argumento: un número que representa un instante. Páselo como resultado de os.time y dará formato exactamente a ese instante.
Sin el segundo argumento, usa la hora actual, por lo que estas dos llamadas describen el mismo instante.
local t = os.time()
print(os.date("%Y-%m-%d", t))Hora local frente a UTC
De forma predeterminada, os.date usa su zona horaria local. Para obtener UTC (tiempo universal), empiece la cadena de formato con un signo de exclamación !.
Esto es importante en servidores y aplicaciones usadas en todo el mundo, donde todos deben regirse por el mismo reloj.
print("Local:", os.date("%H:%M"))
print("UTC: ", os.date("!%H:%M"))La forma de tabla
Si pasa "*t" como formato, os.date devuelve una tabla en lugar de una cadena.
La tabla contiene campos con nombre, como year, month, day, hour, min y sec. Esto resulta práctico cuando necesita un solo dato.
local d = os.date("*t")
print(d.year, d.month, d.day)
print(d.hour, d.min, d.sec)Leer un solo campo
Como la forma de tabla proporciona campos con nombre, es fácil obtener únicamente el mes o la hora actuales.
Use !*t para obtener la versión UTC de la tabla. Cada campo es un número simple que puede usar en condiciones.
local d = os.date("*t")
if d.hour < 12 then
print("Good morning")
else
print("Good afternoon")
endos.time a partir de una tabla
os.time también funciona al revés. Proporciónele una tabla con year, month y day y devolverá la cantidad de segundos correspondiente a esa fecha.
Esto le permite construir un valor de tiempo para cualquier fecha concreta del calendario que elija.
local t = os.time({year=2020, month=1, day=1, hour=0})
print(t)
print(os.date("%Y-%m-%d", t))Conversión de ida y vuelta
Puede pasar libremente de una forma a otra: os.time convierte una tabla en un número y os.date("*t", n) convierte un número de nuevo en una tabla.
Esta conversión de ida y vuelta es la base de los cálculos con fechas, que explorará en lecciones posteriores.
local n = os.time({year=2021, month=6, day=15})
local back = os.date("*t", n)
print(back.year, back.month, back.day)Comprobación rápida
Compruebe su comprensión de las dos funciones principales.
Resumen
os.time() proporciona el instante actual como una cantidad de segundos desde la época. os.date() convierte el tiempo en texto usando códigos de formato %, o en una tabla mediante "*t".
Añada ! para usar UTC y pase un número de tiempo como segundo argumento para dar formato a un instante específico. Juntas, estas funciones cubren casi todas las necesidades relacionadas con fechas en Lua.
Preguntas frecuentes
¿La lección «os.time y os.date» es gratis?
Sí — el texto completo de «os.time y os.date» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Lua Academy, actualiza a CoddyKit PRO. El curso de Lua Academy incluye 4 lecciones en total.
¿Qué aprenderé en «os.time y os.date»?
Obtenga la hora actual Practicas Lua Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Lua Academy?
No se requiere experiencia previa. Lua Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «os.time y os.date»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Lua Academy?
Sí. Cada lección de Lua Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- os.time y os.date
- Formatear fechas
- Aritmética temporal
- Medir duraciones