Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-time/src/chunkedarray/string/patterns.rs
6940 views
1
//! Patterns are grouped together by order of month, day, year. This is to prevent
2
//! parsing different orders of dates in a single column.
3
4
pub(super) static DATE_D_M_Y: &[&str] = &[
5
"%d-%m-%Y", // 31-12-2021
6
"%d/%m/%Y", // 31/12/2021
7
"%d.%m.%Y", // 31.12.2021
8
];
9
10
pub(super) static DATE_Y_M_D: &[&str] = &[
11
"%Y-%m-%d", // 2021-12-31
12
"%Y/%m/%d", // 2021/12/31
13
"%Y.%m.%d", // 2021.12.31
14
];
15
16
/// NOTE: don't use single letter dates like %F
17
/// polars parsers does not support them, so it will be slower
18
pub(super) static DATETIME_D_M_Y: &[&str] = &[
19
"%d-%m-%YT%H:%M:%S.%9f",
20
"%d-%m-%YT%H:%M:%S.%6f",
21
"%d-%m-%YT%H:%M:%S.%3f",
22
"%d-%m-%YT%H:%M:%S",
23
"%d-%m-%YT%H%M%S.%9f",
24
"%d-%m-%YT%H%M%S.%6f",
25
"%d-%m-%YT%H%M%S.%3f",
26
"%d-%m-%YT%H%M%S",
27
"%d-%m-%YT%H:%M",
28
"%d-%m-%YT%H%M",
29
"%d-%m-%Y %H:%M:%S.%9f",
30
"%d-%m-%Y %H:%M:%S.%6f",
31
"%d-%m-%Y %H:%M:%S.%3f",
32
"%d-%m-%Y %H:%M:%S",
33
"%d-%m-%Y %H%M%S.%9f",
34
"%d-%m-%Y %H%M%S.%6f",
35
"%d-%m-%Y %H%M%S.%3f",
36
"%d-%m-%Y %H%M%S",
37
"%d-%m-%Y %H:%M",
38
"%d-%m-%Y %H%M",
39
"%d-%m-%Y",
40
"%d/%m/%YT%H:%M:%S.%9f",
41
"%d/%m/%YT%H:%M:%S.%6f",
42
"%d/%m/%YT%H:%M:%S.%3f",
43
"%d/%m/%YT%H:%M:%S",
44
"%d/%m/%YT%H%M%S.%9f",
45
"%d/%m/%YT%H%M%S.%6f",
46
"%d/%m/%YT%H%M%S.%3f",
47
"%d/%m/%YT%H%M%S",
48
"%d/%m/%YT%H:%M",
49
"%d/%m/%YT%H%M",
50
"%d/%m/%Y %H:%M:%S.%9f",
51
"%d/%m/%Y %H:%M:%S.%6f",
52
"%d/%m/%Y %H:%M:%S.%3f",
53
"%d/%m/%Y %H:%M:%S",
54
"%d/%m/%Y %H%M%S.%9f",
55
"%d/%m/%Y %H%M%S.%6f",
56
"%d/%m/%Y %H%M%S.%3f",
57
"%d/%m/%Y %H%M%S",
58
"%d/%m/%Y %H:%M",
59
"%d/%m/%Y %H%M",
60
"%d/%m/%Y",
61
"%d.%m.%YT%H:%M:%S.%9f",
62
"%d.%m.%YT%H:%M:%S.%6f",
63
"%d.%m.%YT%H:%M:%S.%3f",
64
"%d.%m.%YT%H:%M:%S",
65
"%d.%m.%YT%H%M%S.%9f",
66
"%d.%m.%YT%H%M%S.%6f",
67
"%d.%m.%YT%H%M%S.%3f",
68
"%d.%m.%YT%H%M%S",
69
"%d.%m.%YT%H:%M",
70
"%d.%m.%YT%H%M",
71
"%d.%m.%Y %H:%M:%S.%9f",
72
"%d.%m.%Y %H:%M:%S.%6f",
73
"%d.%m.%Y %H:%M:%S.%3f",
74
"%d.%m.%Y %H:%M:%S",
75
"%d.%m.%Y %H%M%S.%9f",
76
"%d.%m.%Y %H%M%S.%6f",
77
"%d.%m.%Y %H%M%S.%3f",
78
"%d.%m.%Y %H%M%S",
79
"%d.%m.%Y %H:%M",
80
"%d.%m.%Y %H%M",
81
"%d.%m.%Y",
82
];
83
84
/// NOTE: don't use single letter dates like %F
85
/// polars parsers does not support them, so it will be slower
86
pub(super) static DATETIME_Y_M_D: &[&str] = &[
87
"%Y-%m-%dT%H:%M:%S.%9f",
88
"%Y-%m-%dT%H:%M:%S.%6f",
89
"%Y-%m-%dT%H:%M:%S.%3f",
90
"%Y-%m-%dT%H:%M:%S",
91
"%Y-%m-%dT%H%M%S.%9f",
92
"%Y-%m-%dT%H%M%S.%6f",
93
"%Y-%m-%dT%H%M%S.%3f",
94
"%Y-%m-%dT%H%M%S",
95
"%Y-%m-%dT%H:%M",
96
"%Y-%m-%dT%H%M",
97
"%Y-%m-%d %H:%M:%S.%9f",
98
"%Y-%m-%d %H:%M:%S.%6f",
99
"%Y-%m-%d %H:%M:%S.%3f",
100
"%Y-%m-%d %H:%M:%S",
101
"%Y-%m-%d %H%M%S.%9f",
102
"%Y-%m-%d %H%M%S.%6f",
103
"%Y-%m-%d %H%M%S.%3f",
104
"%Y-%m-%d %H%M%S",
105
"%Y-%m-%d %H:%M",
106
"%Y-%m-%d %H%M",
107
"%Y-%m-%d",
108
"%Y/%m/%dT%H:%M:%S.%9f",
109
"%Y/%m/%dT%H:%M:%S.%6f",
110
"%Y/%m/%dT%H:%M:%S.%3f",
111
"%Y/%m/%dT%H:%M:%S",
112
"%Y/%m/%dT%H%M%S.%9f",
113
"%Y/%m/%dT%H%M%S.%6f",
114
"%Y/%m/%dT%H%M%S.%3f",
115
"%Y/%m/%dT%H%M%S",
116
"%Y/%m/%dT%H:%M",
117
"%Y/%m/%dT%H%M",
118
"%Y/%m/%d %H:%M:%S.%9f",
119
"%Y/%m/%d %H:%M:%S.%6f",
120
"%Y/%m/%d %H:%M:%S.%3f",
121
"%Y/%m/%d %H:%M:%S",
122
"%Y/%m/%d %H%M%S.%9f",
123
"%Y/%m/%d %H%M%S.%6f",
124
"%Y/%m/%d %H%M%S.%3f",
125
"%Y/%m/%d %H%M%S",
126
"%Y/%m/%d %H:%M",
127
"%Y/%m/%d %H%M",
128
"%Y/%m/%d",
129
"%Y.%m.%dT%H:%M:%S.%9f",
130
"%Y.%m.%dT%H:%M:%S.%6f",
131
"%Y.%m.%dT%H:%M:%S.%3f",
132
"%Y.%m.%dT%H:%M:%S",
133
"%Y.%m.%dT%H%M%S.%9f",
134
"%Y.%m.%dT%H%M%S.%6f",
135
"%Y.%m.%dT%H%M%S.%3f",
136
"%Y.%m.%dT%H%M%S",
137
"%Y.%m.%dT%H:%M",
138
"%Y.%m.%dT%H%M",
139
"%Y.%m.%d %H:%M:%S.%9f",
140
"%Y.%m.%d %H:%M:%S.%6f",
141
"%Y.%m.%d %H:%M:%S.%3f",
142
"%Y.%m.%d %H:%M:%S",
143
"%Y.%m.%d %H%M%S.%9f",
144
"%Y.%m.%d %H%M%S.%6f",
145
"%Y.%m.%d %H%M%S.%3f",
146
"%Y.%m.%d %H%M%S",
147
"%Y.%m.%d %H:%M",
148
"%Y.%m.%d %H%M",
149
"%Y.%m.%d",
150
"%Y-%m-%dT%H:%M:%S%.f", // ISO 8601 with dynamic precision and without timezone
151
];
152
153
pub(super) static DATETIME_Y_M_D_Z: &[&str] = &[
154
"%Y-%m-%dT%H:%M:%S.%9f%#z",
155
"%Y-%m-%dT%H:%M:%S.%6f%#z",
156
"%Y-%m-%dT%H:%M:%S.%3f%#z",
157
"%Y-%m-%dT%H:%M:%S%#z",
158
"%Y-%m-%dT%H%M%S.%9f%#z",
159
"%Y-%m-%dT%H%M%S.%6f%#z",
160
"%Y-%m-%dT%H%M%S.%3f%#z",
161
"%Y-%m-%dT%H%M%S%#z",
162
"%Y-%m-%dT%H:%M%#z",
163
"%Y-%m-%dT%H%M%#z",
164
"%Y-%m-%d %H:%M:%S.%9f%#z",
165
"%Y-%m-%d %H:%M:%S.%6f%#z",
166
"%Y-%m-%d %H:%M:%S.%3f%#z",
167
"%Y-%m-%d %H:%M:%S%#z",
168
"%Y-%m-%d %H%M%S.%9f%#z",
169
"%Y-%m-%d %H%M%S.%6f%#z",
170
"%Y-%m-%d %H%M%S.%3f%#z",
171
"%Y-%m-%d %H%M%S%#z",
172
"%Y-%m-%d %H:%M%#z",
173
"%Y-%m-%d %H%M%#z",
174
"%Y/%m/%dT%H:%M:%S.%9f%#z",
175
"%Y/%m/%dT%H:%M:%S.%6f%#z",
176
"%Y/%m/%dT%H:%M:%S.%3f%#z",
177
"%Y/%m/%dT%H:%M:%S%#z",
178
"%Y/%m/%dT%H%M%S.%9f%#z",
179
"%Y/%m/%dT%H%M%S.%6f%#z",
180
"%Y/%m/%dT%H%M%S.%3f%#z",
181
"%Y/%m/%dT%H%M%S%#z",
182
"%Y/%m/%dT%H:%M%#z",
183
"%Y/%m/%dT%H%M%#z",
184
"%Y/%m/%d %H:%M:%S.%9f%#z",
185
"%Y/%m/%d %H:%M:%S.%6f%#z",
186
"%Y/%m/%d %H:%M:%S.%3f%#z",
187
"%Y/%m/%d %H:%M:%S%#z",
188
"%Y/%m/%d %H%M%S.%9f%#z",
189
"%Y/%m/%d %H%M%S.%6f%#z",
190
"%Y/%m/%d %H%M%S.%3f%#z",
191
"%Y/%m/%d %H%M%S%#z",
192
"%Y/%m/%d %H:%M%#z",
193
"%Y/%m/%d %H%M%#z",
194
"%Y.%m.%dT%H:%M:%S.%9f%#z",
195
"%Y.%m.%dT%H:%M:%S.%6f%#z",
196
"%Y.%m.%dT%H:%M:%S.%3f%#z",
197
"%Y.%m.%dT%H:%M:%S%#z",
198
"%Y.%m.%dT%H%M%S.%9f%#z",
199
"%Y.%m.%dT%H%M%S.%6f%#z",
200
"%Y.%m.%dT%H%M%S.%3f%#z",
201
"%Y.%m.%dT%H%M%S%#z",
202
"%Y.%m.%dT%H:%M%#z",
203
"%Y.%m.%dT%H%M%#z",
204
"%Y.%m.%d %H:%M:%S.%9f%#z",
205
"%Y.%m.%d %H:%M:%S.%6f%#z",
206
"%Y.%m.%d %H:%M:%S.%3f%#z",
207
"%Y.%m.%d %H:%M:%S%#z",
208
"%Y.%m.%d %H%M%S.%9f%#z",
209
"%Y.%m.%d %H%M%S.%6f%#z",
210
"%Y.%m.%d %H%M%S.%3f%#z",
211
"%Y.%m.%d %H%M%S%#z",
212
"%Y.%m.%d %H:%M%#z",
213
"%Y.%m.%d %H%M%#z",
214
"%+", // ISO 8601; Same as %Y-%m-%dT%H:%M:%S%.f%:z; supports Z or UTC
215
];
216
217
pub(super) static TIME_H_M_S: &[&str] = &["%T%.9f", "%T%.6f", "%T%.3f", "%T", "%R"];
218
219
#[derive(Eq, Hash, PartialEq, Clone, Copy, Debug)]
220
pub enum Pattern {
221
DateDMY,
222
DateYMD,
223
DatetimeYMD,
224
DatetimeDMY,
225
DatetimeYMDZ,
226
Time,
227
}
228
229