Support BCE dates
Overview
Supporting dates from before CE/AD requires something other than Python's default date-handling library. These dates would probable be specified as "negative" dates (e.g. https://en.wikipedia.org/wiki/ISO_8601#Years)
Originally: https://github.com/frictionlessdata/specs/issues/386#issuecomment-304810134
Pandas (via NumPy) supports BCE dates:
https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html
Comes up in the context of the CMOA Collection data
@workergnome ...The non-castable value is going to be a problem—we do have to deal with dates BCE.
Moved to the specs as it's doubtful that we can do it solely on the software level as standard date libraries don't support negative dates (so BCE is a new data type probably)
When thinking of support BCE dates: should we also think of supporting "circa" alike dates?: dates with uncertainty (person who was born in 1865-1867, or a specimen dated between V-VII century, etc.). I've seen archaeologists requesting this for some date fields in other systems and usually is overlooked.
Like "BCE dates" it might be another type of field and I don't know of any standard to describe these values. There are comments in https://github.com/schemaorg/suggestions-questions-brainstorming/issues/219 and schema.org might have done some more work recently.
It's definitely a topic for an extensive discussion :smiley:
When? some uncertain time in the future :-) (sorry, I couldn't resist)
This is not a specs items really - it is about how it is handled in a given language. I'd recommend closing this as INVALID or WONTFIX for now.
BTW if you want a library supporting BCE etc dates in python see this lib i wrote many years ago https://github.com/datopian/flexidate
I agree theoretically it's an implementation level but in reality, it's not possible to support it in any of 10 language implementations without breaking changes unless there is a help from the specs like a allowBCE property or something.
I support closing it with a recommendation to use a string type and external libraries like flexidate to handle BCE dates. Although it can be moved to a forum; maybe some can suggest a good standard to rely on or something. Or provide more examples for the future.