{"id":33231768,"url":"https://github.com/tkych/cl-date-time-parser","last_synced_at":"2025-11-16T19:01:21.271Z","repository":{"id":146359778,"uuid":"11607068","full_name":"tkych/cl-date-time-parser","owner":"tkych","description":"Parse date-time-string, liberally.","archived":false,"fork":false,"pushed_at":"2014-07-23T11:53:56.000Z","size":282,"stargazers_count":18,"open_issues_count":6,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T22:12:39.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","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/tkych.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-23T11:48:35.000Z","updated_at":"2023-12-08T13:38:34.000Z","dependencies_parsed_at":"2023-03-25T16:05:34.848Z","dependency_job_id":null,"html_url":"https://github.com/tkych/cl-date-time-parser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tkych/cl-date-time-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkych%2Fcl-date-time-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkych%2Fcl-date-time-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkych%2Fcl-date-time-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkych%2Fcl-date-time-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkych","download_url":"https://codeload.github.com/tkych/cl-date-time-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkych%2Fcl-date-time-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284759739,"owners_count":27058842,"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","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-11-16T18:00:20.906Z","updated_at":"2025-11-16T19:01:21.262Z","avatar_url":"https://github.com/tkych.png","language":"Common Lisp","readme":"Last modified: 2014-05-18 14:39:27 tkych\n\nversion 0.1.03 (beta)\n\n\nCL-Date-Time-Parser\n===================\n\n\u003e In general, an implementation should be conservative in its sending\n\u003e behavior, and liberal in its receiving behavior.\n\u003e [RFC791: Internet Protocol](http://tools.ietf.org/html/rfc791)\n\n\nThere are a lot of formats to specify the date and time on the Web.\nFor example:\n\n * \"Thu, 23 Jul 2013 19:42:23 GMT\" (RFC1123),\n * \"Thu Jul 23 19:42:23 2013\" (asctime),\n * \"Thursday, 23-Jul-13 19:42:23 GMT\" (RFC1036),\n * \"2013-07-23T19:42:23Z\" (RFC3339),\n * \"20130723T194223Z\" (ISO8601:2004), etc.\n\nThe goal of cl-date-time-parser is to hide the difference between\ndate-time formats, and enable to manage date and time as the one date-time format\n([Universal Time](http://www.lispworks.com/documentation/HyperSpec/Body/25_adb.htm)).\n\nFunction `parse-date-time` parses date-time-string, and return universal-time and fraction.\nParsable date-time formats are:\n\n * RFC822 (RFC1123, RFC2822, RFC5322),\n * asctime,\n * RFC850 (RFC1036),\n * ISO8601 (1988, 2000, 2004, except for no-year format), W3CDTF (subset of ISO 8601),\n * RFC3339.\n\nIn addition, `parse-date-time` can liberally parse the above formats with little broken.\n\n\nDepends-on\n----------\n\n * [alexandria](http://common-lisp.net/project/alexandria/)\n * [anaphora](http://common-lisp.net/project/anaphora/)\n * [split-sequence](http://www.cliki.net/split-sequence)\n * [cl-ppcre](http://weitz.de/cl-ppcre/)\n * [local-time](http://common-lisp.net/project/local-time/)\n * [parse-float](https://github.com/soemraws/parse-float)\n\n\nInstallation\n------------\n\n#### cl-test-grid results:\n\n - http://common-lisp.net/project/cl-test-grid/library/cl-date-time-parser.html\n\n\n##### Auto:\n\n 0. CL-REPL\u003e `(ql:quickload :cl-date-time-parser)`\n\n\n##### Manual:\n\n 0. SHELL$   `git clone https://github.com/tkych/cl-date-time-parser`\n 1. CL-REPL\u003e `(push #p\"/path-to-cl-date-time-parser/cl-date-time-parser/\" asdf:*central-registry*)`\n 2. CL-REPL\u003e `(ql:quickload :cl-date-time-parser)` or `(asdf:load-system :cl-date-time-parser)`\n\n\nExamples\n--------\n\n    (parse-date-time \"Thu, 23 Jul 2013 19:42:23 GMT\") ;RFC 1123\n    =\u003e 3583597343, 0\n\n    (parse-date-time \"Thu Jul 23 19:42:23 2013\") ;asctime\n    =\u003e 3583597343, 0\n\n    (parse-date-time \"Thursday, 23-Jul-13 19:42:23 GMT\") ;RFC 1036\n    =\u003e 3583597343, 0\n\n    (parse-date-time \"2013-07-23T19:42:23Z\") ;RFC 3339\n    =\u003e 3583597343, 0\n\n    (parse-date-time \"20130723T194223Z\") ;ISO 8601\n    =\u003e 3583597343, 0\n\n    (parse-date-time \"Thu, 23 Jul 2013 19:42:23 JST\")\n    =\u003e 3583564943, 0\n\n    (parse-date-time \"2013-07-23T19:42:23+09:00\")\n    =\u003e 3583564943, 0\n\n    (parse-date-time \"23 Jul 13 19:42:23 +0900\")\n    =\u003e 3583564943, 0\n\n    (parse-date-time \"Thu Jul 23 19:42:23 JST 2013\")\n    =\u003e 3583564943, 0\n\n    (parse-date-time \"2013-07-23T19:42:23.45Z\")\n    =\u003e 3583597343, 0.45\n\n    (parse-date-time \"2013-01-01\")\n    =\u003e 3565987200, 0\n\n    (parse-date-time \"2013\")\n    =\u003e 3565987200, 0\n\n    (parse-date-time \"1 Jan 13\")\n    =\u003e 3565987200, 0\n\n    (parse-date-time \"2003-12-31T25:14:55Z\") ;broken hours\n    =\u003e 3281908495, 0\n    (parse-date-time \"2004-01-01T01:14:55Z\")\n    =\u003e 3281908495, 0\n\n    (parse-date-time \"2003-12-31T10:61:55Z\") ;broken minuits\n    =\u003e 3281857315, 0\n    (parse-date-time \"2003-12-31T11:01:55Z\")\n    =\u003e 3281857315, 0\n\n    (parse-date-time \"2003-12-31T10:14:61Z\") ;broken seconds\n    =\u003e 3281854501, 0\n    (parse-date-time \"2003-12-31T10:15:01Z\")\n    =\u003e 3281854501, 0\n\n    (parse-date-time \";3-12-31T10:15:01Z\") ;broken two-digit-years c.f. rfc3339, 3.\n    =\u003e 3597473701, 0\n    (parse-date-time \"2013-12-31T10:15:01Z\")\n    =\u003e 3597473701, 0\n\n\nFor further examples, please see Eval-Test in date-time-parser.lisp\n\n\nManual\n------\n\n#### [Function] PARSE-DATE-TIME _date-time-string_ =\u003e _universal-time_, _fraction_\n\nParse _date-time-string_, and return _universal-time_ and _fraction_.\n_date-time-string_ must represent the date-time after 1900-01-01T00:00:00Z.\n\nParsable Formats:\n\n * RFC822 Genus: RFC822, RFC1123, RFC2822, RFC5322, asctime, RFC850 (RFC1036).\n * ISO8601 Genus: ISO8601(:1988, :2000 and :2004. except for no-year format), W3CDTF, RFC3339.\n * Broken format: The above formats with little broken.\n\n\nReference\n---------\n\n * RFC822 (Internet Message Format) Genus:\n   * [RFC 822: Standard for the Format of Arpa Internet Text Messages](http://tools.ietf.org/html/rfc822)\n   * [RFC 1123: Requirements for Internet Hosts -- Application and Support](http://tools.ietf.org/html/rfc1123)\n   * [RFC 2822: Internet Message Format](http://tools.ietf.org/html/rfc2822)\n   * [RFC 5322: Internet Message Format](http://tools.ietf.org/html/rfc5322)\n     * [errata for RFC 5322](http://www.rfc-editor.org/errata_search.php?rfc=5322)\n   * [RFC 850: Standard for Interchange of USENET Messages](http://tools.ietf.org/html/rfc850)\n   * [RFC 1036: Standard for Interchange of USENET Messages](http://tools.ietf.org/html/rfc1036)\n   * [asctime format](http://en.cppreference.com/w/c/chrono/asctime)\n\n * ISO8601 (Timestamp) Genus:\n   * [ISO 8601:1988, 2000, 2004](http://www.iso.org/iso/home/standards/iso8601.htm)\n   * [W3CDTF: Date and Time Formats](http://www.w3.org/TR/1998/NOTE-datetime-19980827)\n   * [RFC 3339: Date and Time on the Internet: Timestamps](http://tools.ietf.org/html/rfc3339)\n     * [errata for RFC 3339](http://www.rfc-editor.org/errata_search.php?rfc=3339)\n\n\nAuthor, License, Copyright\n--------------------------\n\n - Takaya OCHIAI  \u003c#.(reverse \"moc.liamg@lper.hcykt\")\u003e\n\n - MIT License\n\n - Copyright (C) 2013 Takaya OCHIAI\n","funding_links":[],"categories":["Python ##","Online editors ##"],"sub_categories":["Third-party APIs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkych%2Fcl-date-time-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkych%2Fcl-date-time-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkych%2Fcl-date-time-parser/lists"}