このページは日本語に翻訳済みです。
datetime
日付、時刻、またはその両方を表します。
この型のコンストラクタ関数を使ってカスタム日時を指定するか、datetime.today
を使って現在の日付を取得することで作成できます。
例
#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とDuration
2つのdatetimeの差を取ることで、durationを取得できます。
#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()

datetimeとdurationを加減算することで、新しい日時(オフセットされたdatetime)を取得することもできます。
#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()

フォーマット
display
メソッドを使うことで、日時をカスタマイズして表示するフォーマットを指定できます。日時のフォーマットは、コンポーネント に 修飾子 を組み合わせることで指定します。
コンポーネントは、日時の中の特定の部分(たとえば年や月など)を表します。そして修飾子を使うことで、そのコンポーネントをどのように表示するかを細かく設定できます。
コンポーネントを表示するには、コンポーネントの名前を角かっこで囲みます(例:[year]
は年を表示します)。修飾子を追加するには、コンポーネント名の後に半角スペースを入れ、修飾子名、コロン(:)、修飾子の値を記述します(例:[month repr:short]
は月名を短縮形で表示します)。
使用可能なコンポーネントと修飾子の組み合わせは以下のとおりです。
year
:datetime
の年を表示します。padding
: 年表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。repr
:full
(4桁表示)last_two
(2桁表示)を指定できます。sign
: 符号の表示をautomatic
(自動)またはmandatory
(常時)で指定できます。
month
:datetime
の月を表示しますpadding
: 月表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。repr
: 月を数値で表示するか(numerical
)、英語の月名(long
)、英語の略称(short
)で表示するかを指定できます。 残念ながら、現在のところ、月名表示は英語のみです。将来的には多言語対応が予定されています。
day
:datetime
の日を表示します。padding
: 日表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。
week_number
: datetimeの週番号を表示します。padding
: 週番号のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。repr
:ISO
、sunday
(日曜開始)、monday
(月曜開始)を指定できます。ISOの場合、数字は1〜53、それ以外では0〜53で表されます。
weekday
:date
の曜日を表示します。repr
: 曜日名(long
)、曜日名の略称(short
)、日曜(sunday
)、月曜(monday
)のいずれかを指定できます。long
とshort
では、対応する曜日名が英語で表示されます。 (月名と同様に、他言語での表示はまだサポートされていません)。sunday
とmonday
では、日曜または月曜から数えた日数が数値で表示されます。one_indexed
:true
またはfalse
を指定できます。これは、曜日の数値表示の際、開始日を0とするか1とするかを指定します。
hour
:date
の時を表示します。padding
: 時表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。repr
: 24時間表示(24
)または12時間表示(12
)を指定できます。
period
: AM/PM(午前・午後)の表示です。case
: 小文字(lower
)、大文字(upper
)を指定できます。
minute
:date
の分を表示します。padding
: 分表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。
second
:date
の秒を表示します。padding
: 秒表示のパディングはzero
(ゼロ)、space
(空白)、none
(なし)が指定できます。
すべてのコンポーネントが常に使用できるとは限らない点には注意してください。たとえば、datetime(year: 2023, month: 10, day: 13)
のようにして新しいdatetime
を作成すると、内部的には日付のみが保持されるため、hour
やminute
のようなコンポーネントは使用できません。それらは特定の時刻が指定されたdatetime
でのみ動作します。
コンストラクタ引数引数は関数への入力値です。関数名の後に括弧で囲んで指定します。
新しいdatetimeを作成。
年、月、日、時、分、秒を指定してdatetimeを作成します。
注:指定するdatetime
の要素によって、Typstが保持する形式は次の3通りのいずれかになります。
- 年、月、日だけを指定した場合、Typstは日付のみを保持します。
- 時、分、秒だけを指定した場合、Typstは時刻のみを保持します。
- 年、月、日、時、分、秒すべてを指定した場合、Typstは完全な日時を保持します。
保持形式に応じて、display
メソッドはデフォルトで異なるフォーマットを選択します。
#datetime(
year: 2012,
month: 8,
day: 3,
).display()

定義定義これらの関数や型には、関連する定義を持たせることができます。定義にアクセスするには、対象の関数や型の名前を指定した後に、ピリオド区切りで定義名を記述します。
today
現在の日付を取得。
例を表示
Today's date is
#datetime.today().display().

display
指定したフォーマットでdatetime
を表示します。
日付のみ、時刻のみ、または両方が指定されているかによって、デフォルトのフォーマットは異なります。
日付のみ指定されている場合は[year]-[month]-[day]
になります。
時刻のみ指定されている場合は[hour]:[minute]:[second]
になります。
日時の両方が指定されている場合は[year]-[month]-[day] [hour]:[minute]:[second]
になります。
詳細はフォーマット構文を参照してください。