datetimeDesde: 0.5.0
Representa una fecha, una hora o una combinación de ambas.
Se puede crear especificando una fecha y hora personalizadas con la función constructora de este tipo u obteniendo la fecha actual con datetime.today.
Ejemplo
#let date = datetime(
year: 2020,
month: 10,
day: 4,
)
#date.display() \
#date.display(
"y:[year repr:last_two]"
)
#let time = datetime(
hour: 18,
minute: 2,
second: 23,
)
#time.display() \
#time.display(
"h:[hour repr:12][period]"
)

Datetime y Duration
Podés obtener una duración restando dos datetime:
#let first-of-march = datetime(day: 1, month: 3, year: 2024)
#let first-of-jan = datetime(day: 1, month: 1, year: 2024)
#let distance = first-of-march - first-of-jan
#distance.hours()

También podés sumar o restar una duración a un datetime para obtener un nuevo datetime desplazado:
#let date = datetime(day: 1, month: 3, year: 2024)
#let two-days = duration(days: 2)
#let two-days-earlier = date - two-days
#let two-days-later = date + two-days
#date.display() \
#two-days-earlier.display() \
#two-days-later.display()

Formato
Podés especificar un formato personalizado con el método display. El formato de un datetime se especifica proporcionando componentes con una cantidad determinada de modificadores. Un componente representa una cierta parte del datetime que querés mostrar y, con la ayuda de los modificadores, podés definir cómo querés mostrar ese componente. Para mostrar un componente, encerrás el nombre del componente entre corchetes (por ejemplo, [year] mostrará el año). Para agregar modificadores, agregás un espacio después del nombre del componente seguido del nombre del modificador, dos puntos y el valor del modificador (por ejemplo, [month repr:short] mostrará la representación corta del mes).
La combinación posible de componentes y sus respectivos modificadores es la siguiente:
year: Muestra el año del datetime.base: Puede sercalendaroiso_week. Especifica si el año se basa en el calendario gregoriano o en el número de semana ISO.padding: Puede serzero,spaceonone. Especifica cómo se rellena el año.reprPuede serfull, en cuyo caso se muestra el año completo, olast_two, en cuyo caso solo se muestran los dos últimos dígitos.sign: Puede serautomaticomandatory. Especifica cuándo se debe mostrar el signo.
month: Muestra el mes del datetime.padding: Puede serzero,spaceonone. Especifica cómo se rellena el mes.repr: Puede sernumerical,longoshort. Especifica si el mes se debe mostrar como número o como palabra. Lamentablemente, al elegir la representación con palabras, actualmente solo puede mostrar la versión en inglés. Está previsto admitir la localización en el futuro.
day: Muestra el día del datetime.padding: Puede serzero,spaceonone. Especifica cómo se rellena el día.
week_number: Muestra el número de semana del datetime.padding: Puede serzero,spaceonone. Especifica cómo se rellena el número de semana.repr: Puede serISO,sundayomonday. En el caso deISO, los números de semana van de 1 a 53, mientras que los otros van de 0 a 53.
weekday: Muestra el día de la semana de la fecha.reprPuede serlong,short,sundayomonday. En el caso delongyshort, se mostrará el nombre correspondiente en inglés (igual que para el mes; por ahora no se admiten otros idiomas). En el caso desundayymonday, se mostrará el valor numérico (suponiendo el domingo y el lunes, respectivamente, como primer día de la semana).one_indexed: Puede sertrueofalse. Define si la representación numérica de la semana empieza en 0 o en 1.
hour: Muestra la hora de la fecha.padding: Puede serzero,spaceonone. Especifica cómo se rellena la hora.repr: Puede ser24o12. Cambia si la hora se muestra en formato de 24 o de 12 horas.
period: La parte AM/PM de la horacase: Puede serlowerpara mostrarla en minúsculas yupperpara mostrarla en mayúsculas.
minute: Muestra el minuto de la fecha.padding: Puede serzero,spaceonone. Especifica cómo se rellena el minuto.
second: Muestra el segundo de la fecha.padding: Puede serzero,spaceonone. Especifica cómo se rellena el segundo.
Mirá acá para más detalles sobre la sintaxis admitida.
Tené en cuenta que no siempre se pueden usar todos los componentes. Por ejemplo, si creás un nuevo datetime con datetime(year: 2023, month: 10, day: 13), se almacenará internamente como una fecha simple, lo que significa que no podés usar componentes como hour o minute, que solo funcionarían en datetimes que tienen una hora especificada.
Constructor
Crea un datetime nuevo.
Podés especificar el datetime con año, mes, día, hora, minuto y segundo.
Nota: Según qué componentes del datetime especifiques, Typst lo almacenará de una de las tres maneras siguientes:
- Si especificás año, mes y día, Typst almacenará solo una fecha.
- Si especificás hora, minuto y segundo, Typst almacenará solo una hora.
- Si especificás todos los componentes (año, mes, día, hora, minuto y segundo), Typst almacenará un datetime completo.
Según cómo se almacene, el método display elegirá por defecto un formato distinto.
Ver ejemplo
#datetime(
year: 2012,
month: 8,
day: 3,
).display()

year
El año del datetime.
month
El mes del datetime.
day
El día del datetime.
hour
La hora del datetime.
minute
El minuto del datetime.
second
El segundo del datetime.
Funciones
todayDesde: 0.5.0
Devuelve la fecha actual.
En la CLI, esto se puede reemplazar con el argumento --creation-timestamp o estableciendo la variable de entorno SOURCE_DATE_EPOCH. En ambos casos, el valor debe darse como una marca de tiempo UNIX.
Ver ejemplo
Today's date is
#datetime.today().display().

offsetPor defecto: auto
Un desfase que se aplica a la fecha UTC actual. Si se establece en auto, el desfase será el local.
Cuando se da un desfase entero, se trata como una duración en horas.
displayDesde: 0.5.0
Muestra el datetime en un formato especificado.
Según hayas definido solo una fecha, solo una hora o ambas, el formato por defecto será distinto. Si especificaste una fecha, será [year]-[month]-[day]. Si especificaste una hora, será [hour]:[minute]:[second]. En el caso de un datetime, será [year]-[month]-[day] [hour]:[minute]:[second].
Mirá la sintaxis de formato para más información.
patternPor defecto: auto
El formato que se usa para mostrar el datetime.
yearDesde: 0.5.0
El año si se especificó, o none para horas sin fecha.
monthDesde: 0.5.0
El mes si se especificó, o none para horas sin fecha.
weekdayDesde: 0.5.0
El día de la semana (contando el lunes como 1) o none para horas sin fecha.
dayDesde: 0.5.0
El día si se especificó, o none para horas sin fecha.
hourDesde: 0.5.0
La hora si se especificó, o none para fechas sin hora.
minuteDesde: 0.5.0
El minuto si se especificó, o none para fechas sin hora.
secondDesde: 0.5.0
El segundo si se especificó, o none para fechas sin hora.
ordinalDesde: 0.5.0
El ordinal (día del año), o none para horas sin fecha.