|
Message-ID: <CAJDAfTDpBrooMDDJ=p1xf5c_j6Rn9nAuAnBCvdotzUcgBkQRzA@mail.gmail.com> Date: Thu, 4 Feb 2016 13:27:40 -0200 From: Alba Pompeo <albapompeo@...il.com> To: musl@...ts.openwall.com Cc: Martin Maechler <maechler@...t.math.ethz.ch> Subject: strptime() question Hello musl. I've built R on a musl system and "make check-all" fails because R does not get correct timezone information from the system. Here's the error - http://pastebin.com/raw/32D3ngNZ This would be correct, > difftime( + as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 12:00:00"), tz="EST5EDT"), + as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 00:00:00"), tz="UTC")) Time differences in hours [1] 5 17 but my system gives 4 16 which would suggest that it thinks that there is only 4 hours time difference between UTC and EST5EDT and that is just wrong. The above can be translated to this (slightly more low-level) R code which is already somewhat close to the internal C code of R : > t0 <- strptime("1970-01-01 00:00:00", "%Y-%m-%d %H:%M:%OS", tz="UTC") > as.numeric(t0) [1] 0 > t1 <- strptime("1970-01-01 00:00:00", "%Y-%m-%d %H:%M:%OS", tz="EST5EDT") > as.numeric(t1) [1] 18000 > 18000 / 3600 [1] 5 > That's why its 5 hours. R's strptime() is close to the C library strptime(), so think musl specialists should have it easy to do the above from C and find out why you get 4 hour instead of 5 hour difference. I'm certain this isn't a problem with R and I think it's up to me to ensure that your system's C library strptime() function returns the correct numbers for the above example, but I can't understand why it doesn't. Can anyone help here? Thanks a lot. Ciao.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.