{"id":15047520,"url":"https://github.com/mguludag/chrono_parse","last_synced_at":"2025-08-11T21:36:48.077Z","repository":{"id":155144761,"uuid":"628422359","full_name":"mguludag/chrono_parse","owner":"mguludag","description":"parse date_times with {fmt} style into std::chrono::time_point {WIP} ","archived":false,"fork":false,"pushed_at":"2024-06-24T21:16:53.000Z","size":240,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T00:50:58.019Z","etag":null,"topics":["chrono","cpp","cpp11","cpp14","cpp17","cpp20","datetime","header-only","iso8601","iso8601-parser","parser"],"latest_commit_sha":null,"homepage":"https://mguludag.github.io/chrono_parse/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mguludag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-15T22:32:22.000Z","updated_at":"2025-03-11T18:39:12.000Z","dependencies_parsed_at":"2025-02-16T06:32:09.616Z","dependency_job_id":"31c75cf0-c0d4-4b12-a4bb-505e127ef56c","html_url":"https://github.com/mguludag/chrono_parse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguludag%2Fchrono_parse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguludag%2Fchrono_parse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguludag%2Fchrono_parse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguludag%2Fchrono_parse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mguludag","download_url":"https://codeload.github.com/mguludag/chrono_parse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137998,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrono","cpp","cpp11","cpp14","cpp17","cpp20","datetime","header-only","iso8601","iso8601-parser","parser"],"created_at":"2024-09-24T20:59:37.511Z","updated_at":"2025-04-10T00:51:01.970Z","avatar_url":"https://github.com/mguludag.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chrono_parse\n\nparse date and times with {fmt} style into`std::chrono::time_point` {WIP}\n\n## [Usage](https://godbolt.org/z/nb3qdMYza)\n\n```C++\n#include \"mgutility/chrono/parse.hpp\"\n\n// {fmt} for printing\n#include \u003cfmt/chrono.h\u003e\n#include \u003cfmt/format.h\u003e\n\nint main() {\n    const auto chrono_time = mgutility::chrono::parse(\"{:%FT%T.%f%z}\", \"2023-04-16T00:05:23.999+0100\");\n\n    fmt::print(\"{:%F %T}\\n\", chrono_time); // prints 2023-04-15 23:05:23.999000000 ({fmt} trunk version)\n}\n```\n\n## Format specifiers\n\n| Format Specifier | Explanation                                                        |\n| ---------------- | ------------------------------------------------------------------ |\n| `%Y`             | parses **year** as a decimal number, e.g. 2023                     |\n| `%m`             | parses **month** as a decimal number, e.g. 05                      |\n| `%d`             | parses **day** as a decimal number, e.g. 14                        |\n| `%H`             | parses **hour** as a decimal number, e.g. 16                       |\n| `%M`             | parses **minute** as a decimal number, e.g. 31                     |\n| `%S`             | parses **second** as a decimal number, e.g. 59                     |\n| `%F`             | parses **year-month-day** as an iso8601 date, e.g. 2023-05-04      |\n| `%T`             | parses **hour:minute:second** as an iso8601 time, e.g. 16:31:59    |\n| `%f`             | parses **milliseconds** as a decimal number, e.g. 869              |\n| `%z`             | parses **timezone** as a decimal number, e.g. +0100 or -01:00 or Z |\n\n## Notes\n\n- Currently not supported all format specifiers (at least ISO-8601 capable now)\n\n## [Performance](https://quick-bench.com/q/ry5gUzPplSBQenbLVBqRt1ns2-k)\n\n- Performance is ~50x faster than `std::get_time` + `std::mktime`.\n\n![ry5gUzPplSBQenbLVBqRt1ns2-k](https://user-images.githubusercontent.com/12413639/234938992-93cd1cb0-3a17-4466-99ae-b08cd3d3c8ff.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmguludag%2Fchrono_parse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmguludag%2Fchrono_parse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmguludag%2Fchrono_parse/lists"}