Where exactly do you see sql-timestamp->srfi-date failing? In your examples, what I'm seeing is incorrect translation from UTC to UTC-4, but I don't see where the translation from sql-timestamp to date* is going wrong. Could you point to exactly where you see the problem?
As far as offsetting time zones properly, Racket's built-in libraries will not help you there. You might want to check out my library, gregor: http://pkg-build.racket-lang.org/doc/gregor/index.html. You'd still need to write your own sql-datetime->moment function, but that's not difficult. In fact: (require gregor) (require racket/match) (define (sql-timestamp->moment t) (match-define (sql-timestamp y mo d h mi s n tz) t) (moment y mo d h mi s n #:tz (or tz 0))) Unfortunately, since sql-timestamp only represents time zones as offsets from UTC, you're a bit limited from the start. Gregor certainly can use UTC offsets as TZs but prefers to use IANA names (e.g., "America/New_York"). -Jon On Sat, Aug 22, 2015 at 3:45 PM, George Neuner <[email protected]> wrote: > > Ok, reading the docs more carefully, I realized that seconds->date takes a > boolean and not a time zone offset, but that doesn't explain why > sql-timestamp->srfi-date is not working properly. > > I'm now offsetting the time with > > (seconds->date > (+ (date*->seconds ts #f) (* timezone 60 60)) > #f)) > > which gives me the right time, but in the wrong time zone. > > Just how do I offset time zones properly? Do I need to construct the date* > piecemeal? > > Thanks, > George > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

