1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
use crateCalendarError;
/// Semantical unit usually extracted from a stream of bytes
///
/// # Date Formats
///
/// | Format | Example | Description |
/// | ------- | -------- | ---------------------------------------------------------------------------------- |
/// | `%Y` | `2001` | Year with four zero-padded digits |
/// | `%y` | `01` | Year with two zero-padded digits |
/// | | | |
/// | `%m` | `07` | Month with two zero-padded digits |
/// | `%b` | `Jul` | Abbreviated month name |
/// | | | |
/// | `%d` | `08` | Day of month with two zero-padded digits |
/// | `%e` | ` 8` | Same as `%d` but space-padded |
/// | | | |
/// | `%a` | `Sun` | Abbreviated weekday name |
/// | `%A` | `Sunday` | Full weekday name |
/// | | | |
/// | `%z?` | `±03` | Optional offset from the local time to UTC with or wihtout `Z`, colon and minutes¹ |
///
/// # Time Formats
///
/// | Format | Example | Description |
/// | ------- | -------- | ----------------------------------------------- |
/// | `%H` | `00` | Year with two zero-padded digits |
/// | | | |
/// | `%M` | `59` | Minute with two zero-padded digits |
/// | | | |
/// | `%S` | `59` | Second with two zero-padded digits |
/// | | | |
/// | `%f?` | `.12345` | Optional number of nanosecond with a dot prefix |
///
/// # Literal Formats
///
/// | Format | Name |
/// | ------- | ------------------- |
/// | `:` | Colon |
/// | `,` | Comma |
/// | `-` | Dash |
/// | `GMT` | Greenwich Mean Time |
/// | `/` | Slash |
/// | ` ` | Space |
/// | `T` | Date/Time separator |
///
/// ¹: Decoding accept many optinal paramenters but encoding will always output ±00:00 or `Z`.