Date and time formats

Date and time formats are specified using date and time pattern strings. Within date and time pattern strings, unquoted letters from A to Z and from a to z are interpreted as pattern letters. They represent the components of a date or time string. The text to include in the output should be quoted using single quotes (').

This table shows the pattern letters and how they are used:

Letter Date or time component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Text 1
a AM/PM marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in AM/PM (0-11) Number 0
h Hour in AM/PM (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

Pattern letters

The number of pattern letters determines the exact presentation.

  • 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 number of pattern letters is the minimum number of digits, and shorter numbers are zero-padded to this amount.
  • Year: If the number of pattern letters is 2, the year is truncated to 2 digits. Otherwise it is interpreted as a number.
  • Month: If the number of pattern letters is 3 or more, the month is interpreted as text. Otherwise, it is interpreted as a number.
  • General time zone: Time zones are interpreted as text if they have names. For time zones that represent a GMT offset value, this syntax is used:
    
         GMTOffsetTimeZone:
                 GMT  Sign  Hours  :  Minutes
         Sign: one of
                 + -
         Hours:
                 Digit
                 Digit  Digit
         Minutes:
                 Digit  Digit
         Digit: one of
                 0 1 2 3 4 5 6 7 8 9
            

    Hours must be between 0 and 23, and Minutes must be between 00 and 59. The format is locale independent and digits must be taken from the Basic Latin block of the Unicode standard.

    For parsing, RFC 822 time zones are also accepted

  • RFC 822 time zone: For formatting, the RFC 822 4-digit time zone format is used:
    
         RFC822TimeZone:
                 Sign  TwoDigitHours  Minutes
         TwoDigitHours:
                 Digit Digit

    TwoDigitHours must be between 00 and 23.