This is related to several mailing list discussions:
and some votes:
The consensus appears to be that there are (conceptually) at least three temporal types, (Java calls these Instant, LocalDateTime, and ZonedDateTime). Some of these types could map to multiple physical types (e.g. ZonedDateTime could be stored as a Timestamp or a Date32/Time64 pair). Some even have multiple encoding schemes for a given representation (there are multiple ways to encode a LocalDateTime into an 8 byte timestamp field).
In addition, it appears the consensus is that Arrow does not need three first-class types. Instead the documentation should be updated to clearly define a recommended convention for encoding the various conceptual types.