Goal for an instant literal:
Provide a relatively easy way to create a human readable time instant. Also provide a protocol based library of date functions
What this is:
- A Reader Macro
- Complies with ISO8601
- Joda is the gold standard for parsing. Specifically, the formatter returned by org.joda.time.format.ISODateTimeFormat/dateTime
- Aware of offset from UTC
- Provides a Dateable Protocol
- Provides a CljDate type, which is aware of both the UTC instant and offset from UTC
- Equality/Hashcode based on instant
- Display based on instant+offset
- Plays nice w/ Joda, includes docs to extend to Joda.
- A collection of very common comparators and predicates.
- A collection of converter functions
- Written in Clojure, w/ exception of reader assignment
What this is NOT:
- Time Zone support
- Multiple Chonology support
- Clever duration support
- Directly dependent upon Joda
- A PITA to use
Things to read to facilitate intelligent discussion (TO DO):
- ISO 8601 - Wikipedia
- Joda Design docs - Joda Time
- JSR 310 - http://jcp.org/en/jsr/detail?id=310
- Other languages time libs
- How Hotspot Clocks Work
Known issues/things to solve
- Support for only a date or time of day?
- Allow partial composition in a literal?
- Parsing dates before 1970 (Epoch start)