Módulo Time
El módulo Time proporciona funciones y propiedades para trabajar con fecha y hora en JARU.

Uso
use Time
Funciones
now
La función now(format?) devuelve la fecha y hora actual del sistema.
Parámetros
| Parámetro | Descripción |
|---|---|
format | (Opcional) Cadena de formato según especificadores de strftime |
Valor de retorno
Devuelve un string con la fecha y hora actual. Si no se especifica formato, devuelve la fecha en formato estándar (ej: "Tue Dec 23 16:30:45 2025").
Ejemplo sin formato
use Time
var ahora = Time.now()
println(ahora)
// Salida: Tue Dec 23 16:30:45 2025
Ejemplo con formato personalizado
use Time
// Formato: día/mes/año
var fecha = Time.now("%d/%m/%Y")
println(fecha)
// Salida: 23/12/2025
// Formato: hora:minutos:segundos
var hora = Time.now("%H:%M:%S")
println(hora)
// Salida: 16:30:45
// Formato ISO 8601
var iso = Time.now("%Y-%m-%d %H:%M:%S")
println(iso)
// Salida: 2025-12-23 16:30:45
Especificadores de formato
| Especificador | Descripción | Ejemplo |
|---|---|---|
%a | Nombre abreviado del día de la semana | Thu |
%A | Nombre completo del día de la semana | Thursday |
%b | Nombre abreviado del mes | Aug |
%B | Nombre completo del mes | August |
%c | Representación de fecha y hora | Thu Aug 23 14:55:02 2001 |
%d | Día del mes con cero (01-31) | 23 |
%D | Fecha corta MM/DD/YY | 08/23/01 |
%e | Día del mes con espacio (1-31) | 23 |
%F | Fecha corta YYYY-MM-DD | 2001-08-23 |
%H | Hora en formato 24h (00-23) | 14 |
%I | Hora en formato 12h (01-12) | 02 |
%j | Día del año (001-366) | 235 |
%m | Mes como número (01-12) | 08 |
%M | Minutos (00-59) | 55 |
%p | Designación AM o PM | PM |
%r | Hora en formato 12h | 02:55:02 pm |
%R | Hora HH:MM en 24h | 14:55 |
%S | Segundos (00-61) | 02 |
%T | Hora ISO 8601 (HH:MM:SS) | 14:55:02 |
%u | Día de la semana ISO 8601 (1-7, lunes=1) | 4 |
%w | Día de la semana (0-6, domingo=0) | 4 |
%x | Representación de fecha | 08/23/01 |
%X | Representación de hora | 14:55:02 |
%y | Año, últimos dos dígitos (00-99) | 01 |
%Y | Año completo | 2001 |
%z | Offset ISO 8601 desde UTC | +0100 |
%Z | Nombre de zona horaria | CET |
%% | Carácter literal % | % |
Propiedades
El módulo Time expone propiedades que contienen los componentes de la fecha y hora en el momento de cargar el módulo.
Las propiedades day, month, year, hour, minute, second y weekday reflejan el momento en que se cargó el módulo con use Time. Para obtener valores actualizados en tiempo real, usa la función now() con el formato apropiado.
Propiedades de fecha
| Propiedad | Tipo | Descripción |
|---|---|---|
day | integer | Día del mes (1-31) |
weekday | integer | Día de la semana (0-6, donde 0 es domingo) |
month | integer | Mes (1-12) |
year | integer | Año completo (ej: 2025) |
Propiedades de hora
| Propiedad | Tipo | Descripción |
|---|---|---|
hour | integer | Hora (0-23) |
minute | integer | Minutos (0-59) |
second | integer | Segundos (0-59) |
Constantes
| Constante | Valor | Descripción |
|---|---|---|
MINYEAR | 1 | Año mínimo soportado |
MAXYEAR | 9999 | Año máximo soportado |
Ejemplo de uso de propiedades
use Time
println("Fecha actual:")
println(" Día: ", Time.day)
println(" Mes: ", Time.month)
println(" Año: ", Time.year)
println("Hora actual:")
println(" Hora: ", Time.hour)
println(" Minutos: ", Time.minute)
println(" Segundos: ", Time.second)
println("Día de la semana: ", Time.weekday)
// 0=Domingo, 1=Lunes, ..., 6=Sábado
Ejemplos completos
Mostrar fecha y hora formateada
use Time
// Fecha en formato español
var fecha = Time.now("%d de %B de %Y")
println("Hoy es ", fecha)
// Hora actual
var hora = Time.now("%H:%M:%S")
println("Son las ", hora)
Crear un timestamp para logs
use Time
func log(mensaje)
var timestamp = Time.now("[%Y-%m-%d %H:%M:%S]")
println(timestamp, " ", mensaje)
end
log("Aplicación iniciada")
log("Procesando datos...")
log("Operación completada")
Determinar el día de la semana
use Time
var dias = ["Domingo", "Lunes", "Martes", "Miércoles",
"Jueves", "Viernes", "Sábado"]
var hoy = dias[Time.weekday]
println("Hoy es ", hoy)
if (Time.weekday == 0 or Time.weekday == 6) then
println("¡Es fin de semana!")
else
println("Es día laborable")
end
Formato personalizado para diferentes usos
use Time
// Para nombre de archivo
var nombreArchivo = "backup_" + Time.now("%Y%m%d_%H%M%S") + ".dat"
println("Archivo: ", nombreArchivo)
// Salida: backup_20251223_163045.dat
// Para mostrar al usuario
var fechaUsuario = Time.now("%A, %d de %B de %Y a las %H:%M")
println(fechaUsuario)
// Salida: Tuesday, 23 de December de 2025 a las 16:30
Plataformas soportadas
| Plataforma | Soporte | Notas |
|---|---|---|
| Windows (SDL2) | ✅ | Usa funciones estándar de C |
| ESP32 | ✅ | Requiere sincronización NTP para hora precisa |
| Emscripten (Web) | ✅ | Usa hora del navegador |
| SiFive | 🚧 | En desarrollo |
En dispositivos ESP32, la hora del sistema puede no estar configurada al inicio. Considera usar un servidor NTP para sincronizar la hora antes de usar el módulo Time en aplicaciones que requieran precisión temporal.