[R] Errors and OS Differences with as.POSIXct and as.POSIXlt

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue Jan 19 11:14:01 CET 2021


Hello,

R 4.0.3 on Ubuntu 20.04, sessionInfo() below.

A fix is to use as.POSIXct instead:

rui using rui:~$ Rscript --vanilla -e 'as.POSIXlt("2018-03-11 02:09", 
tz="America/New_York")'
#[1] "2018-03-11 02:09:00 EDT"
rui using rui:~$ Rscript --vanilla -e 'as.POSIXct("2018-03-11 02:09", 
tz="America/New_York")'
#[1] "2018-03-11 01:09:00 EST"


rui using rui:~$ Rscript --vanilla -e 'sessionInfo()'
R version 4.0.3 (2020-10-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.1 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
  [1] LC_CTYPE=pt_PT.UTF-8       LC_NUMERIC=C
  [3] LC_TIME=pt_PT.UTF-8        LC_COLLATE=pt_PT.UTF-8
  [5] LC_MONETARY=pt_PT.UTF-8    LC_MESSAGES=pt_PT.UTF-8
  [7] LC_PAPER=pt_PT.UTF-8       LC_NAME=C
  [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=pt_PT.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.0.3


Hope this helps,

Rui Barradas
Às 01:56 de 19/01/21, Bill Denney escreveu:
> Hello,
> 
> 
> 
> Dates created with as.POSIXct differ between Windows/Mac and Linux.
> Specifically this time that is during a gap when the hour does not exist
> due to daylight savings time:
> 
> 
> 
> as.POSIXct("2018-03-11 02:09:36", tz="America/New_York")
> 
> 
> 
> Gives on Windows:
> 
> [1] "2018-03-11 EST"
> 
> Gives on Linux (Ubuntu 20.04):
> 
> [1] "2018-03-11 01:09:36 EST"
> 
> 
> 
> Since the time does not exist, and I think that NA should be returned.
> 
> 
> 
> Another issue and difference is that with as.POSIXlt on Linux, the invalid
> time is presented:
> 
> 
> 
> as.POSIXlt("2018-03-11 02:09", tz="America/New_York")
> 
> 
> 
> Gives on Windows:
> 
> [1] "2018-03-11 EST"
> 
> Gives on Linux:
> 
> [1] "2018-03-11 02:09:00 EDT"
> 
> 
> 
> (Note that the time provided on Linux does not exist due to daylight
> savings time.)
> 
> 
> 
> I think that for any invalid time, the result should be the same as an
> invalid date:  NA is returned.
> 
> 
> 
> What is the intended, appropriate time, and what is the best way to fix
> this?
> 
> 
> 
> Thanks,
> 
> 
> 
> Bill
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list