Quarto Dates and Date Formatting

Date Parsing

When you write a date for Quarto document, Quarto will attempt to parse a date string by trying a number of standard forms before ultimately attempting to infer the date format. Quarto will try dates formatted as follows, in the following order:

  • MM/dd/yyyy
  • MM-dd-yyyy
  • MM/dd/yy
  • MM-dd-yy
  • yyyy-MM-dd
  • dd MM yyyy
  • MM dd, yyyy
  • YYYY-MM-DDTHH:mm:ssZ

In addition, you may also provide date keywords, which will provide a dynamic date.

Keyword Date
today The current local date, with the time portion set to 0.
now The current local date and time.
last-modified The last modified date and time of the input file containing the date.

Date Formatting

When specifying a date format in Quarto, there are two ways to represent the format that you’d like.

Using a Date Style

You can specify a simple date style which will be used to format the date.

For example:

---
date: 03/07/2005
date-format: long
---

Valid styles and examples of the formatted output are as follows:

Style Description Example
full A full date that includes the weekday name Monday, March 7, 2005
long A long date that includes a wide month name March 7, 2005
medium A medium date Mar 7, 2005
short A short date with a numeric month 3/7/05
iso A short date in ISO format 2005-03-07

Using a Date Format

You can also specify a date format string that will be used to format the date. For example:

---
date: 03/07/2005
date-format: "MMM D, YYYY"

The permissible values in this string include:

Format String Output Description
YY 18 Two-digit year
YYYY 2018 Four-digit year
M 1-12 The month, beginning at 1
MM 01-12 The month, 2-digits
MMM Jan-Dec The abbreviated month name
MMMM January-December The full month name
D 1-31 The day of the month
DD 01-31 The day of the month, 2-digits
d 0-6 The day of the week, with Sunday as 0
dd Su-Sa The min name of the day of the week
ddd Sun-Sat The short name of the day of the week
dddd Sunday-Saturday The name of the day of the week
H 0-23 The hour
HH 00-23 The hour, 2-digits
h 1-12 The hour, 12-hour clock
hh 01-12 The hour, 12-hour clock, 2-digits
m 0-59 The minute
mm 00-59 The minute, 2-digits
s 0-59 The second
ss 00-59 The second, 2-digits
SSS 000-999 The millisecond, 3-digits
Z +05:00 The offset from UTC, ±HH:mm
ZZ +0500 The offset from UTC, ±HHmm
A AM PM
a am pm
Q 1-4 Quarter
Do 1st 2nd … 31st Day of Month with ordinal
k 1-24 The hour, beginning at 1
kk 01-24 The hour, 2-digits, beginning at 1
X 1360013296 Unix Timestamp in second
x 1360013296123 Unix Timestamp in millisecond
w 1 2 … 52 53 Week of year ( dependent WeekOfYear plugin )
ww 01 02 … 52 53 Week of year, 2-digits ( dependent WeekOfYear plugin )
W 1 2 … 52 53 ISO Week of year ( dependent IsoWeek plugin )
WW 01 02 … 52 53 ISO Week of year, 2-digits ( dependent IsoWeek plugin )
wo 1st 2nd … 52nd 53rd Week of year with ordinal ( dependent WeekOfYear plugin )
gggg 2017 Week Year ( dependent WeekYear plugin )
GGGG 2017 ISO Week Year ( dependent IsoWeek plugin )
z EST Abbreviated named offset ( dependent Timezone plugin )
zzz Eastern Standard Time Unabbreviated named offset ( dependent Timezoneplugin )

To escape characters, wrap them in square brackets (e.g. [MM]).

Example formats and outputs include:

Format Output
MMM D, YYYY Mar 7, 2005
DD/MM/YYYY 07/03/2005
[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z] YYYYescape 2005-03-07T00:00:00-05:00Z
YYYY-MM-DDTHH:mm:ssZ 2005-03-07T00:00:00-05:00
dddd MMM D, YYYY Monday Mar 7, 2005