Time-zone in to-universal-time
tkych opened this issue · comments
Takaya OCHIAI commented
Hello, I like & use simple-date-time library for its nice simplicity.
However, in the following code something wrong is occurring:
(- (encode-universal-time 0 0 0 1 1 2000 0)
(simple-date-time:to-universal-time
(simple-date-time:from-string "Sat, 01 Jan 2000 00:00:00 GMT")))
=> 32400
I think in function to-universal-time
at date-time.lisp, encode-universal-time
needs time-zone
.
Because the default value of time-zone
in encode-universal-time
depends on system environment,
and 32400 = (* 9 60 60)
, 9 is JST offset.
c.f. http://clhs.lisp.se/Body/f_encode.htm , last example.
Tahara Yoshinori commented
Thank you for your report.
I add *default-timezone*
.
(defparameter *default-timezone*
(- (car (last (multiple-value-list (decode-universal-time (get-universal-time))))))
"Default timezone. GMT is 0. JST is 9. EST is -5.")
(- (encode-universal-time 0 0 0 1 1 2000 0)
(simple-date-time:to-universal-time
(simple-date-time:from-string "Sat, 01 Jan 2000 00:00:00 GMT")))
;;⇒ 0
(- (encode-universal-time 0 0 0 1 1 2000 0)
(simple-date-time:to-universal-time
(simple-date-time:from-string "Sat, 01 Jan 2000 00:00:00 GMT" :timezone 0)
0))
;;⇒ 0
(- (encode-universal-time 0 0 9 1 1 2000 -9)
(simple-date-time:to-universal-time
(simple-date-time:from-string "Sat, 01 Jan 2000 00:00:00 GMT")))
;;⇒ 0
(- (encode-universal-time 0 0 0 1 1 2000 -9)
(simple-date-time:to-universal-time
(simple-date-time:from-string "Sat, 01 Jan 2000 00:00:00 +0900")))
;;⇒ 0
これで正しいふるいまだと思いますか?
Takaya OCHIAI commented
Thank you for quick fixes.
P.S. ばっちしです。
Tahara Yoshinori commented
Thanks, よかったです m(_ _)m