1
1
# chrono_parse
2
- parse date and times with {fmt} style into` std::chrono::time_point ` {WIP}
2
+
3
+ parse date and times with {fmt} style into` std::chrono::time_point ` {WIP}
3
4
4
5
## [ Usage] ( https://godbolt.org/z/nb3qdMYza )
6
+
5
7
``` C++
6
8
#include " mgutility/chrono/parse.hpp"
7
9
@@ -17,27 +19,26 @@ int main() {
17
19
```
18
20
19
21
## Format specifiers
20
- | Format Specifier | Explanation |
21
- | --| --|
22
- | ` %Y ` | parses ** year** as a decimal number, e.g. 2023 |
23
- | ` %m ` | parses ** month** as a decimal number, e.g. 05 |
24
- | ` %d ` | parses ** day** as a decimal number, e.g. 14 |
25
- | ` %H ` | parses ** hour** as a decimal number, e.g. 16 |
26
- | ` %M ` | parses ** minute** as a decimal number, e.g. 31 |
27
- | ` %S ` | parses ** second** as a decimal number, e.g. 59 |
28
- | ` %F ` | parses ** year-month-day** as an iso8601 date, e.g. 2023-05-04 |
29
- | ` %T ` | parses ** hour:minute: second ** as an iso8601 time, e.g. 16:31:59 |
30
- | ` %f ` | parses ** milliseconds** as a decimal number, e.g. 869 |
31
- | ` %z ` | parses ** timezone** as a decimal number, e.g. +0100 or -01:00 or Z |
22
+
23
+ | Format Specifier | Explanation |
24
+ | ---------------- | ------------------------------------------------------------------ |
25
+ | ` %Y ` | parses ** year** as a decimal number, e.g. 2023 |
26
+ | ` %m ` | parses ** month** as a decimal number, e.g. 05 |
27
+ | ` %d ` | parses ** day** as a decimal number, e.g. 14 |
28
+ | ` %H ` | parses ** hour** as a decimal number, e.g. 16 |
29
+ | ` %M ` | parses ** minute** as a decimal number, e.g. 31 |
30
+ | ` %S ` | parses ** second** as a decimal number, e.g. 59 |
31
+ | ` %F ` | parses ** year-month-day** as an iso8601 date, e.g. 2023-05-04 |
32
+ | ` %T ` | parses ** hour:minute: second ** as an iso8601 time, e.g. 16:31:59 |
33
+ | ` %f ` | parses ** milliseconds** as a decimal number, e.g. 869 |
34
+ | ` %z ` | parses ** timezone** as a decimal number, e.g. +0100 or -01:00 or Z |
32
35
33
36
## Notes
37
+
34
38
- Currently not supported all format specifiers (at least ISO-8601 capable now)
35
39
36
40
## [ Performance] ( https://quick-bench.com/q/ry5gUzPplSBQenbLVBqRt1ns2-k )
41
+
37
42
- Performance is ~ 50x faster than ` std::get_time ` + ` std::mktime ` .
38
43
39
44
![ ry5gUzPplSBQenbLVBqRt1ns2-k] ( https://user-images.githubusercontent.com/12413639/234938992-93cd1cb0-3a17-4466-99ae-b08cd3d3c8ff.png )
40
-
41
-
42
-
43
-
0 commit comments