a complete description of all date fomats and how to use them could be very useful to users!
Not documentation, but maybe this gets you through in the meantime:
(source Logseq/app-0.10.8/resources/app/js/cljs_time/format.cljs
)
Map of ISO 8601 and a single RFC 822 formatters that can be used
for parsing and, in most cases, printing.
Note: due to current implementation limitations, timezone information
cannot be kept. Although the correct offset will be applied to UTC
time if supplied.
The pattern syntax is mostly compatible with java.text.SimpleDateFormat -
time zone names cannot be parsed and a few more symbols are supported. All
ASCII letters are reserved as pattern letters, which are defined as follows:
Symbol Meaning Presentation Examples
------ ------- ------------ -------
G era text AD
C century of era (>=0) number 20
Y year of era (>=0) year 1996
x weekyear year 1996
w week of weekyear number 27
e day of week number 2
E day of week text Tuesday; Tue
y year year 1996
D day of year number 189
M month of year month July; Jul; 07
d day of month number 10
a halfday of day text PM
K hour of halfday (0~11) number 0
h clockhour of halfday (1~12) number 12
H hour of day (0~23) number 0
k clockhour of day (1~24) number 24
m minute of hour number 30
s second of minute number 55
S fraction of second number 978
a meridiem text am; pm
A meridiem text AM; PM
z time zone text Pacific Standard Time; PST
Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
' escape for text delimiter
'' single quote literal '
cljs-time additions:
------ ------- ------------ -------
Symbol Meaning Presentation Examples
------ ------- ------------ -------
o ordinal suffix text st nd rd th (E.G., 1st, 2nd, 3rd, 4th)
The count of pattern letters determine the format.
**Text:** If the number of pattern letters is 4 or more, the full form is used;
otherwise a short or abbreviated form is used if available.
**Number:** The minimum number of digits. Shorter numbers are zero-padded to this
amount.
**Year:** Numeric presentation for year and weekyear fields are handled
specially. For example, if the count of `y` is 2, the year will be displayed
as the zero-based year of the century, which is two digits.
**Month:** 3 or over, use text, otherwise use number.
**Zone:** `Z` outputs offset without a colon, `ZZ` outputs the offset with a
colon, `ZZZ` or more outputs the zone id.
**Zone names:** Time zone names ('z') cannot be parsed.
Any characters in the pattern that are not in the ranges of `['a'..'z']` and
`['A'..'Z']` will be treated as quoted text. For instance, characters like `:`,
`.`, `<space>`, `#` and `?` will appear in the resulting time text even they are
not embraced within single quotes."}
formatters
{:basic-date (formatter "yyyyMMdd")
:basic-date-time (formatter "yyyyMMdd'T'HHmmss.SSSZ")
:basic-date-time-no-ms (formatter "yyyyMMdd'T'HHmmssZ")
:basic-ordinal-date (formatter "yyyyDDD")
:basic-ordinal-date-time (formatter "yyyyDDD'T'HHmmss.SSSZ")
:basic-ordinal-date-time-no-ms (formatter "yyyyDDD'T'HHmmssZ")
:basic-time (formatter "HHmmss.SSSZ")
:basic-time-no-ms (formatter "HHmmssZ")
:basic-t-time (formatter "'T'HHmmss.SSSZ")
:basic-t-time-no-ms (formatter "'T'HHmmssZ")
:basic-week-date (formatter "xxxx'W'wwe")
:basic-week-date-time (formatter "xxxx'W'wwe'T'HHmmss.SSSZ")
:basic-week-date-time-no-ms (formatter "xxxx'W'wwe'T'HHmmssZ")
:date (formatter "yyyy-MM-dd")
:date-element-parser (not-implemented 'dateElementParser)
:date-hour (formatter "yyyy-MM-dd'T'HH")
:date-hour-minute (formatter "yyyy-MM-dd'T'HH:mm")
:date-hour-minute-second (formatter "yyyy-MM-dd'T'HH:mm:ss")
:date-hour-minute-second-fraction (formatter "yyyy-MM-dd'T'HH:mm:ss.SSS")
:date-hour-minute-second-ms (formatter "yyyy-MM-dd'T'HH:mm:ss.SSS")
:date-opt-time (not-implemented 'dateOptionalTimeParser)
:date-parser (not-implemented 'dateParser)
:date-time (formatter "yyyy-MM-dd'T'HH:mm:ss.SSSZZ")
:date-time-no-ms (formatter "yyyy-MM-dd'T'HH:mm:ssZZ")
:date-time-parser (not-implemented 'dateTimeParser)
:hour (formatter "HH")
:hour-minute (formatter "HH:mm")
:hour-minute-second (formatter "HH:mm:ss")
:hour-minute-second-fraction (formatter "HH:mm:ss.SSS")
:hour-minute-second-ms (formatter "HH:mm:ss.SSS")
:local-date-opt-time (not-implemented 'localDateOptionalTimeParser)
:local-date (not-implemented 'localDateParser)
:local-time (not-implemented 'localTimeParser)
:ordinal-date (formatter "yyyy-DDD")
:ordinal-date-time (formatter "yyyy-DDD'T'HH:mm:ss.SSSZZ")
:ordinal-date-time-no-ms (formatter "yyyy-DDD'T'HH:mm:ssZZ")
:time (formatter "HH:mm:ss.SSSZZ")
:time-element-parser (not-implemented 'timeElementParser)
:time-no-ms (formatter "HH:mm:ssZZ")
:time-parser (formatter 'timeParser)
:t-time (formatter "'T'HH:mm:ss.SSSZZ")
:t-time-no-ms (formatter "'T'HH:mm:ssZZ")
:week-date (formatter "xxxx-'W'ww-e")
:week-date-time (formatter "xxxx-'W'ww-e'T'HH:mm:ss.SSSZZ")
:week-date-time-no-ms (formatter "xxxx-'W'ww-e'T'HH:mm:ssZZ")
:weekyear (formatter "xxxx")
:weekyear-week (formatter "xxxx-'W'ww")
:weekyear-week-day (formatter "xxxx-'W'ww-e")
:year (formatter "yyyy")
:year-month (formatter "yyyy-MM")
:year-month-day (formatter "yyyy-MM-dd")
:rfc822 (formatter "EEE, dd MMM yyyy HH:mm:ss Z")
:mysql (formatter "yyyy-MM-dd HH:mm:ss")})
2 Likes
thanks @etc
that’s a really good start to know which letters to use
1 Like