Skip to main content
Glama
datetime.md5.42 kB
# Datetime Represents a date, a time, or a combination of both. Can be created by either specifying a custom datetime using this type's constructor function or getting the current date with [`datetime.today`]($datetime.today). # Example ```example #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 and Duration You can get a [duration] by subtracting two datetime: ```example #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() ``` You can also add/subtract a datetime and a duration to retrieve a new, offset datetime: ```example #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() ``` # Format You can specify a customized formatting using the [`display`]($datetime.display) method. The format of a datetime is specified by providing _components_ with a specified number of _modifiers_. A component represents a certain part of the datetime that you want to display, and with the help of modifiers you can define how you want to display that component. In order to display a component, you wrap the name of the component in square brackets (e.g. `[[year]]` will display the year). In order to add modifiers, you add a space after the component name followed by the name of the modifier, a colon and the value of the modifier (e.g. `[[month repr:short]]` will display the short representation of the month). The possible combination of components and their respective modifiers is as follows: - `year`: Displays the year of the datetime. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the year is padded. - `repr` Can be either `full` in which case the full year is displayed or `last_two` in which case only the last two digits are displayed. - `sign`: Can be either `automatic` or `mandatory`. Specifies when the sign should be displayed. - `month`: Displays the month of the datetime. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the month is padded. - `repr`: Can be either `numerical`, `long` or `short`. Specifies if the month should be displayed as a number or a word. Unfortunately, when choosing the word representation, it can currently only display the English version. In the future, it is planned to support localization. - `day`: Displays the day of the datetime. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the day is padded. - `week_number`: Displays the week number of the datetime. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the week number is padded. - `repr`: Can be either `ISO`, `sunday` or `monday`. In the case of `ISO`, week numbers are between 1 and 53, while the other ones are between 0 and 53. - `weekday`: Displays the weekday of the date. - `repr` Can be either `long`, `short`, `sunday` or `monday`. In the case of `long` and `short`, the corresponding English name will be displayed (same as for the month, other languages are currently not supported). In the case of `sunday` and `monday`, the numerical value will be displayed (assuming Sunday and Monday as the first day of the week, respectively). - `one_indexed`: Can be either `true` or `false`. Defines whether the numerical representation of the week starts with 0 or 1. - `hour`: Displays the hour of the date. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the hour is padded. - `repr`: Can be either `24` or `12`. Changes whether the hour is displayed in the 24-hour or 12-hour format. - `period`: The AM/PM part of the hour - `case`: Can be `lower` to display it in lower case and `upper` to display it in upper case. - `minute`: Displays the minute of the date. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the minute is padded. - `second`: Displays the second of the date. - `padding`: Can be either `zero`, `space` or `none`. Specifies how the second is padded. Keep in mind that not always all components can be used. For example, if you create a new datetime with `{datetime(year: 2023, month: 10, day: 13)}`, it will be stored as a plain date internally, meaning that you cannot use components such as `hour` or `minute`, which would only work on datetimes that have a specified time. ## Constructor ### `datetime` Creates a new datetime. You can specify the [datetime] using a year, month, day, hour, minute, and second. _Note_: Depending on which components of the datetime you specify, Typst will store it in one of the following three ways: * If you specify year, month and day, Typst will store just a date. * If you specify hour, minute and second, Typst will store just a time. * If you specify all of year, month, day, hour, minute and second, Typst will store a full datetime. Depending on how it is stored, the [`display`]($datetime.display) method will choose a different formatting by default.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FujishigeTemma/typst-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server