At the moment, the specification is ambiguous on which calendar is used for
temporal conversion/writing [1]. Reading the java code it appears it is
using Java's OffsetDateTime which conforms to ISO8601 [2].  ISO8601 appears
to explicitly disallow the Julian calendar (but only says proleptic
gregorian can be used by mutual consent [3]).

Therefore I'd propose:
1. We make the  ISO8601 + proleptic Gregorian + Gregorian calendars
explicit in the specification.
2. Mention in an implementation note, that data migrated from other systems
or data written by older systems might follow the Julian calendar (e.g. it
looks like Spark only transitioned in 3.0 [4]).
  *  Does anybody know of metadata available for systems to make this
determination?
  *  Or a recommendation on how to handle these?

Thoughts?

Thanks,
Micah

[1] This is esoteric but a few systems use 0001-01-01 as a sentinel value
for null so does have some wider applicability
[2] https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html
[3] https://en.wikipedia.org/wiki/ISO_8601#Dates
[4] https://issues.apache.org/jira/browse/SPARK-26651

Reply via email to