Flexidate
Features
- 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)
 - Handle dates before AD 1 or 1 CE
 - Cast imprecise dates (c.1860, 18??, fl. 1534, etc)
 - Normalize dates to machine-readable data types
 - Create sortable date objects
 
Flexidate builds on the excellent dateutil.