[racket] srfi/19 UTC time
On May 21, 2013, at 10:05 PM, Lewis wrote:
> Thanks! I didn't know you could construct dates like that.
>
> According to the docs, the #f argument should give UTC. Unfortunately
> on my machine it gives
>
> (date* 0 0 12 22 5 2013 3 141 #f 43200 0 "NZST")
>
> Which is local time for me. Perhaps this is a bug?
Doesn't look that way to me; I read it as 12:00 noon on May 22nd in your time zone, which I believe is the same moment as 0:00 midnight UTC.
However, it also appears that by passing a #f to the seconds->date function, you can in fact have a UTC date if you prefer it:
#lang racket
(require racket/date)
(seconds->date (find-seconds 0 0 0 22 05 2013 #f) #f)
Best,
John Clements
>
> On 22/05/2013, John Clements <clements at brinckerhoff.org> wrote:
>>
>> On May 21, 2013, at 8:51 PM, Lewis wrote:
>>
>>> When I use string->date in srfi/19, it defaults to my local time zone.
>>> I see from the documentation that one can use "~z" to denote the "time
>>> zone in RFC-822 style". A quick google of RFC-822 suggests "UT" is the
>>> correct abbreviation for UTC.
>>>
>>> However
>>>
>>> Welcome to Racket v5.3.4.
>>>> (require srfi/19)
>>>> (string->date "22/05/13/UT" "~d/~m/~y/~z")
>>> string->date: TIME-ERROR type bad-date-format-string: "~d/~m/~y/~z"
>>> context...:
>>> /usr/lib/racket/collects/srfi/19/time.rkt:1532:0: tm:string->date
>>> /usr/lib/racket/collects/srfi/19/time.rkt:1569:0: string->date
>>> /usr/lib/racket/collects/racket/private/misc.rkt:87:7
>>>
>>> So in short: how - given the day, month and year - can I construct a
>>> date object that's in UTC?
>>
>> How important is it to you to use srfi/19?
>>
>> The program below produces the date that you're looking for, if I understand
>> correctly:
>>
>>
>> #lang racket
>>
>> (require racket/date)
>>
>> (seconds->date (find-seconds 0 0 0 22 05 2013 #f))
>>
>>
>>