Good feedback Casper, thanx! On Mon, Feb 6, 2012 at 12:43 PM, Caspar Hasenclever <caspar.hasencle...@googlemail.com> wrote: > As Avi points out on the github issue discussion, this change would > best be done throughout, i.e. wherever a DateTime instance is created, > otherwise one would end up with surprising behaviour (default of UTC > in > date-time, default of JVM default time zone in formatter). > > That being said, I would argue for keeping UTC as the time zone when > creating > DateTime instances (including via formatter), unless another time zone > is explicitly > requested. > > Although I appreciate the argument for following Joda time in using > the JVM default > time zone, I think clj-time would benefit from imposing a bit of > purity in this case. > Using the JVM defaults for such settings always allows some > unpredictability to leak > into your code (default file encoding, anyone?). > > In other words, the value of (date-time 1970 1 1) should not, in my > opinion, depend > on whether it is run on my machine or yours. > > clj-time.core makes it's use of UTC clear in the documentation, > although a heads-up > regarding the departure from Joda time's behaviour in this regard > would probably help > prevent users tripping over the same issue Avi had. > > On the other hand, I sympathize with Avi that it can be somewhat > inconvenient to specify > times in non-UTC. from-time-zone and to-time-zone are not the most > succinct way > of dealing with this, in my opinion. I admit I quickly ended up > writing a helper function > to produce DateTime instances for explicitly named time zones. Ideally > I would like to be able > to pass the time zone to date-time et al. The way date-time uses > multiple arities currently > precludes this, but my preferred way would be to say, e.g. > > (date-time :utc 1970 1 1 10 30) > => #<DateTime 1970-01-01T10:30:00.000Z> > > or: > (date-time :europe-barcelona 1970 1 1 10 30) > => #<DateTime 1970-01-01T10:30:00.000+01:00> > > or indeed: > (date-time (default-time-zone) 1970 1 1 10 30) > => #<DateTime 1970-01-01T10:30:00.000+01:00> ; YMMV > > and to have UTC as a fallback when no time zone is specified: > (date-time 1970 1 1 10 30) > => #<DateTime 1970-01-01T10:30:00.000Z> > > I personally think it is helpful to make the time zone explicit by > either passing it or accecpting the constant default of UTC. Dealing > with dates and time zones is a lot like dealing with bytes and > encodings. > While cultural, operating system or run time defaults may lull you > into treating > the time zone/encoding as somehow supplementary and non-essential, > you don't really know the value unless you define both aspects of the > data > (and you will get bitten sooner or later). > > Ok, I'll stop before I go completely OT. > > Regards, > > Caspar
-- 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