# Formatting

#### Date and Time Patterns

Date and time formats are specified by *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 representing the components of a date or time string. Text can be quoted using single quotes (`'`) to avoid interpretation. `"''"` represents a single quote. All other characters are not interpreted; they're simply copied into the output string during formatting or matched against the input string during parsing.

The following pattern letters are defined (all other characters from `'A'` to `'Z'` and from `'a'` to `'z'` are reserved):

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

**Examples**

The following examples show how date and time patterns are interpreted in the U.S. locale. The given date and time are 2001-07-04 12:08:56 local time in the U.S. Pacific Time time zone.

| Date and Time Pattern            | Result                                 |
| -------------------------------- | -------------------------------------- |
| `"yyyy.MM.dd G 'at' HH:mm:ss z"` | `2001.07.04 AD at 12:08:56 PDT`        |
| `"EEE, MMM d, ''yy"`             | `Wed, Jul 4, '01`                      |
| `"h:mm a"`                       | `12:08 PM`                             |
| `"hh 'o''clock' a, zzzz"`        | `12 o'clock PM, Pacific Daylight Time` |
| `"K:mm a, z"`                    | `0:08 PM, PDT`                         |
| `"yyyyy.MMMMM.dd GGG hh:mm aaa"` | `02001.July.04 AD 12:08 PM`            |
| `"EEE, d MMM yyyy HH:mm:ss Z"`   | `Wed, 4 Jul 2001 12:08:56 -0700`       |
| `"yyMMddHHmmssZ"`                | `010704120856-0700`                    |
| `"yyyy-MM-dd'T'HH:mm:ss.SSSZ"`   | `2001-07-04T12:08:56.235-0700`         |
| `"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"` | `2001-07-04T12:08:56.235-07:00`        |
| `"YYYY-'W'ww-u"`                 | `2001-W27-3`                           |

reference: <https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html>
