Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Date Parser

Build Status Dub codecov

A port of the Python Dateutil date parser. This module offers a generic date/time string parser which is able to parse most known formats to represent a date and/or time. This module attempts to be forgiving with regards to unlikely input formats, returning a SysTime object even for dates which are ambiguous.

Tested with ldc v1.12.0 - v1.13.0 and dmd v2.081.2 - v2.084.0. May work with earlier versions.

Simple Example

View the docs for more.

import std.datetime;
import dateparser;

void main()
    assert(parse("2003-09-25") == SysTime(DateTime(2003, 9, 25)));
    assert(parse("09/25/2003") == SysTime(DateTime(2003, 9, 25)));
    assert(parse("Sep 2003")   == SysTime(DateTime(2003, 9, 1)));


Install With Dub

    "dependencies": {
        "dateparser": "~>3.0.0"


Based on master, measured on a 2015 Macbook Pro 2.8GHz Intel i7. Python times measured with ipython's %timeit function. D times measured with

String Python 2.7.11 LDC 1.13.0 DMD 2.084.0
Thu Sep 25 10:36:28 BRST 2003 156 µs 10 μs 15 μs
2003-09-25T10:49:41.5-03:00 136 µs 5 μs 6 μs
09.25.2003 124 µs 5 μs 7 μs
2003-09-25 66.4 µs 4 μs 5 μs