[Haskell-cafe] Time zones and IO

Chris Heller hellertime at gmail.com
Mon Nov 7 15:29:52 CET 2011


Last night I modified the CalendarTimeConvertible type class. I added
a function toCalendarTimeWithTimeZone, which adds a time-zone
parameter, and eliminates the need for the unsafePerformIO in the
LocalTime derivation.


However this morning I realized that this was not the right approach.
The problem is that LocalTime is under-defined, and the correct
solution is to in fact not derive CalendarTimeConvertible for the
LocalTime type.

Instead one should think of a CalendarTime as meaningless without a
time-zone, and therefore you cannot derive from
CalendarTimeConvertible without one. This means users should stick to
either the UTCTime derivation of CalendarTimeConvertible, or the
ZonedTime derivation (which is in fact a LocalTime plus a TimeZone as
desired).

-Chris

On Mon, Nov 7, 2011 at 2:56 AM, Chris Smith <cdsmith at gmail.com> wrote:
> On Sun, 2011-11-06 at 17:25 -0500, Heller Time wrote:
>>  unless the machine running the program using time-recurrence was traveling across timezones (and the system was updating that fact)
>
> Note that this is *not* an unusual situation at all these days.  DST was
> already mentioned, but also note that more and more software is running
> on mobile devices that do frequently update their time zone information.
> Unpredictably breaking code when this occurs is going to get a lot worse
> when people starting building Haskell for their Android and iOS phones,
> as we're very very close to seeing happen.
>
> --
> Chris
>
>



More information about the Haskell-Cafe mailing list