Expand/Shrink

format strings

Date and time format elements for parsing/printing are defined by the following groups of characters.
As a general rule, they typically follow the implicit case pattern of "YYYY/MM/DD hh:mm:ss".
Not very strictly followed, however numeric forms of Months/minutes are specified by case.
A simple rule to remember is "The Month of May may be Capitalized, minutes never are".

element aliases description
D d One- or two-digit day.
DD dd Two-digit day. Single-digit day values are preceded by a zero.
th st/TH/ST Two-character ordinal suffix. (lower/uppercase) Must immediately follow d/D/dd/DD.
Ddd DDD/ddd Three-character weekday abbreviation. (capitalised/uppercase/lowercase)
Dddd DDDD/dddd Full weekday name. (capitalised/uppercase/lowercase)
doy Day of year (1..366).
h H One- or two-digit hour. (See am/pm notes below.)
hh HH Two-digit hour. Single-digit values are preceded by a zero. ("")
m mm Two-digit minute. Single-digit values are preceded by a zero. (NB not M/MM)
s ss/S/SS Two-digit second. Single-digit values are preceded by a zero.
ms Three-digit millisecond, 000 to 999.
pm am/PM/AM Two-letter am/pm abbreviation, prior hour must exist. (lower/uppercase)
M One- or two-digit month number. (NB not m)
MM Two-digit month number. Single-digit values are preceded by a zero. (NB not mm)
Mmm MMM/mmm Three-character month abbreviation. (capitalised/uppercase/lowercase)
Mmmm MMMM/mmmm Full month name. (capitalised/uppercase/lowercase)
Y y/YY/yy One- or two-digit year.
YYYY yyyy Four-digit year.
TZ tz Three- or four-character uppercase time zone (always uppercase, eg "GMT")
Tzz TZZ/tzz Full time zone name. (always as-is/capitalised, eg "Greenwich Mean Time")
Examples
"YYYY/MM/DD ham tz"                         "Ddd, Mmm dst, yyyy"
"YYYY/MM/DD ham"                            "Ddd, Mmm dth, yyyy"
"DD Mmm YY"             "hh:mm"             "DDD, Mmm dST, yyyy"
"M/D/YY"                "hh:mmpm"           "Ddd, MMM DTH, yyyy"
"D/M/Y"                 "hh:mm tz"          "Ddd, Mmm dth, YYYY, h:mmpm tz"
"M/D/Y"                 "hpm tz"            "Ddd, Mmm dth, YYYY, h:mmpm"
"M/D/YYY"               "hpm"               "Dddd, Mmmm dth, YYYY, h:mmpm"
"MM/DD/YY"              "h:m:s am"          "Dddd, Mmmm dd, yyyy"
"M/DD/YY"               "h:m:sam"           "Dddd, Mmmm d, YYYY"
"M/DD/YYYY"             " (tzz)"            "Dddd d Mmmm yyyy h:mmpm tz"
"YYYY-MM-DD"                                "Mmmm d, yyyy, hh:mm:ss"
"D/M/YYYY hpm TZ"                           "Mmmm dth yyyy h:mmam tz"
"D/M/YYYY hpm (Tzz)"                        "Mmmm dth yyyy h:mmam"
"dd-Mmm-YY"                                 "Mmmm d yyyy h:mmpm tz"
"’Today is’ Dddd, Mmmm dth, YYYY" -- (put literals in single quotes)
"’Today’’’’s date is’ Dddd, Mmmm dth, YYYY"
WRONG
"dd/mm/yyyy"    -- would be day/minute/year!!
"HH:MM"         -- would be hour/month!!

An error (3 element sequence) is returned if minute immediately follows day or year, or if month immediately follows hour or precedes second or ampm.
(But not if minute immedately precedes year or day, since "1:50 [2016] 2nd Jan" is fine, and month immediately preceding hour or day is fine.)
Expand/Shrink