specs icon indicating copy to clipboard operation
specs copied to clipboard

Support BCE dates

Open danfowler opened this issue 8 years ago • 6 comments

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.

danfowler avatar May 31 '17 07:05 danfowler

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)

roll avatar Oct 14 '20 08:10 roll

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.

cpina avatar Oct 14 '20 08:10 cpina

It's definitely a topic for an extensive discussion :smiley:

roll avatar Oct 14 '20 08:10 roll

When? some uncertain time in the future :-) (sorry, I couldn't resist)

cpina avatar Oct 14 '20 08:10 cpina

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

rufuspollock avatar Oct 14 '20 08:10 rufuspollock

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.

roll avatar Oct 14 '20 10:10 roll