Flexidate

Features

  1. Cast dates according to the Anno Domini notation system (e.g., 399 BC, AD 417) as well as the Common Era notation system (e.g., 399 B.C.E, 417 CE)
  2. Handle dates before AD 1 or 1 CE
  3. Cast imprecise dates (c.1860, 18??, fl. 1534, etc)
  4. Normalize dates to machine-readable data types
  5. Create sortable date objects

Flexidate builds on the excellent dateutil.