datetime
日期、时间或两者的组合的表示。可以通过使用 datetime 函数来指定自定义日期时间,
或使用 datetime.today 获取当前日期。
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]"
)

Format
你可以使用 display 方法来指定自定义的日期时间格式化方式。
日期时间的格式化由提供具有指定数量 修饰符 的 组件 来指定。
组件代表你想要显示的日期时间的特定部分,而借助修饰符,你可以定义如何显示该组件。
为了显示一个组件,你需要将组件名称用方括号括起来(例如,[year] 会显示年份)。
要添加修饰符,需要在组件名称之后加上一个空格,然后是修饰符的名称、冒号和修饰符的值(例如,[month repr:short] 会显示月份的短表示)。
以下是组件及其对应修饰符的可能组合方式:
year:显示日期时间的年份。padding:可以是zero,space或none。指定年份的填充方式。repr:可以是full,此时显示完整年份;或者是last_two,此时只显示最后两位数字。sign:可以是automatic或mandatory。指定何时显示符号。
month:显示日期时间的月份。padding:可以是zero,space或none。指定月份的填充方式。repr:可以是numerical,long或short。指定月份是否以数字或单词形式显示。 不幸的是,选择单词表示时,目前仅能显示英文版本。未来计划支持本地化。
day:显示日期时间的日期。padding:可以是zero,space或none。指定日期的填充方式。
week_number:显示日期时间的周数。padding:可以是zero,space或none。指定周数的填充方式。repr:可以是ISO,sunday或monday。对于ISO,周数范围为 1 至 53; 而对于其他表示方式,周数范围为 0 至 53。
weekday:显示日期时间的星期。repr:可以是long,short,sunday或monday。 对于long和short,会显示相应的英文名称(与月份类似,目前不支持其他语言)。 对于sunday和monday,将显示数字值(分别假设星期日和星期一为一周的第一天)。one_indexed:可以是true或false。定义周的数值表示从 0 还是 1 开始。
hour:显示日期时间的小时。padding:可以是zero,space或none。指定小时的填充方式。repr:可以是24或12。决定小时以 24 小时制还是 12 小时制显示。
period:小时的上午/下午部分case:可以是lower或upper。定义时间段的大小写显示。
minute:显示日期时间的分钟。padding:可以是zero,space或none。指定分钟的填充方式。
second:显示日期时间的秒数。padding:可以是zero,space或none。指定秒数的填充方式。
请注意,并非始终可以使用所有组件。
例如,如果你创建一个新的日期时间,如 datetime(year: 2023, month: 10, day: 13),
它将被内部存储为纯日期,这意味着你不能使用诸如 hour 或 minute 等仅适用于特定时间的日期时间的组件。
方法
方法是可用于该类型的一系列函数,可以使用 . 操作符调用它们。
. 操作符调用它们。display method
以特定方式显示日期时间。
根据你是否仅定义了日期、时间或两者,日期时间的默认格式将会有所不同。
如果你只指定了日期,格式为 [year]-[month]-[day]。
如果你只指定了时间,格式为 [hour]:[minute]:[second]。
如果你同时指定了日期和时间,格式为 [year]-[month]-[day] [hour]:[minute]:[second]。
pattern
用于显示日期时间的格式。
year method
如果日期时间中的 year 存在,返回它。否则,返回 none。
month method
如果日期时间中的 month 存在,返回它。否则,返回 none。
weekday method
如果日期时间的 weekday 存在,返回它按照从星期一开始并用数字表示。否则,返回 none。
day method
如果日期时间中的 day 存在,返回它。否则,返回 none。
hour method
如果日期时间中的 hour 存在,返回它。否则,返回 none。
minute method
如果日期时间中的 minute 存在,返回它,否则,返回 none。
second method
如果日期时间中的 second 存在,返回它,否则,返回 none。