I'm looking at the new instant literal in Clojure 1.4-beta1. The documentation is out of date for clojure.instant/read-instant-date, etc. It mentions *instant-reader* but I think that mechanism was generalized as *data-readers*. Same issue for read-instant-calendar and read-instant-timestamp.
> clojure.instant/read-instant-date > Bind this to *instant-reader* to read instants as java.util.Date. I'm a little confused by the doc for parse-timestamp which says in part: > Unlike RFC3339: > > - we only consdier timestamp (was 'date-time') > (removed: 'full-time', 'full-date') > - timestamp can elide trailing components > - time-offset is optional > Typo: "consdier" should be "consider". I'm guessing the (was 'date-time') and (removed: ...) phrases are developer comments that should be removed altogether. The default #inst returns a java.util.Date. Date is always in UTC, and doesn't know about time zones, but the implementation of the print method always renders it in the default time zone. For example, user=> #inst "2012Z" #inst "2011-12-31T19:00:00.000-05:00" I'll admit that it's nitpicking, but I find that offset disconcerting. I'd much prefer that it print in UTC with an offset of -00:00 to convey the appropriate semantics for a java.util.Date. RFC3339 says: > 4.3. Unknown Local Offset Convention > > If the time in UTC is known, but the offset to local time is unknown, > this can be represented with an offset of "-00:00". This differs > semantically from an offset of "Z" or "+00:00", which imply that UTC > is the preferred reference point for the specified time. Would you accept a patch to print java.util.Date in UTC as -00:00? I'll file a ticket and provide a patch if there's an agreement on this. The printing of java.sql.Timestamp looks broken to me. user=> (binding [*data-readers* {'inst #'clojure.instant/read-instant-timestamp}] (read-string "#inst \"2012Z\"")) #inst "2011-12-31T19:000000000000000-05:00" user=> (binding [*data-readers* {'inst #'clojure.instant/read-instant-timestamp}] (read-string "#inst \"2012-01-01T01:23:45.678+00:00\"")) #inst "2011-12-31T20:267800000000000-05:00" user=> (java.sql.Timestamp. 0) #inst "1969-12-31T19:000000000000000-05:00" I'd be surprised if it makes a difference, but just in case: I'm testing on Mac OS X 10.7.3. ~$ java -version java version "1.6.0_30" Java(TM) SE Runtime Environment (build 1.6.0_30-b12-404-11M3614) Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03-404, mixed mode) Steve Miner stevemi...@gmail.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en