R 格式为(x)的时区问题,其中x为POSIXct
我遇到了一个奇怪的时区问题。即,当值为“EDT”时,额外标记“PDT” 这只发生在远程CENTOS机器上。它不会在我的本地机器上复制R 格式为(x)的时区问题,其中x为POSIXct,r,timezone,posix,posixct,R,Timezone,Posix,Posixct,我遇到了一个奇怪的时区问题。即,当值为“EDT”时,额外标记“PDT” 这只发生在远程CENTOS机器上。它不会在我的本地机器上复制 > format(x, format="%c", tz="America/New_York", usetz=TRUE) [1] "Fri 25 Jul 2014 12:44:03 AM PDT EDT" ## Note that the correct would be ## "Thu 24 Jul 2014 09:44:03 PM PDT" if t
> format(x, format="%c", tz="America/New_York", usetz=TRUE)
[1] "Fri 25 Jul 2014 12:44:03 AM PDT EDT"
## Note that the correct would be
## "Thu 24 Jul 2014 09:44:03 PM PDT" if the time were in PDT
我用'format(x)
尝试了几个不同的选项,也用'x'
下面是一个会话信息示例
(如果您认为合适,请随意重新表述问题)
运行代码:
我还尝试了x的其他值,得到了类似的结果
x这只是一个猜测,因为我对R真的不太了解。但是,如果要在格式化输出时再次传递时区,则在输入中传递时区似乎很奇怪
试试这个:
x <- structure(1406263443, class = c("POSIXct","POSIXt"))
format(x, format="%c", tz="America/New_York", usetz=TRUE)
x CentOS和OS x上的不同时区数据库?通常使用IANA数据库。@Pascal,我会对此感到惊讶,尽管可能。然而,为什么输出中会出现重复的时区?我不知道。在我自己的机器(OpenSUSE)上,当我使用usetz=TRUE
@Pascal时,我得到了[1]“Fri 2014年7月25日00:44:03 EDT EDT”
,感谢您的测试。看起来这可能是一个bug。以下是我在处理TZ问题时学到的方法:阅读?时区中的详细信息,并检查您的系统“zonetab”文件。区分as.POSIXct.numeric
和as.POSIXct.character
,以及输入和输出之间的区别。如果你真的认为这是一个bug,不要在这里报告,在r-devel上报告。谢谢你的回答,不过还是一样的问题。输出是“2014年7月25日星期五12:44:03美国东部夏令时上午”
好的,那么我确信这是一个错误,或者是环境配置问题或类似的问题。
> Sys.time()
[1] "2014-07-24 22:13:05 PDT"
> format(x, format="%c", tz="America/New_York")
[1] "Fri 25 Jul 2014 12:44:03 AM PDT"
> format(x, format="%c", tz="America/New_York", usetz=TRUE)
[1] "Fri 25 Jul 2014 12:44:03 AM PDT EDT" <~~~ NOTICE
> format(x, format="%c", usetz=TRUE)
[1] "Fri 25 Jul 2014 12:44:03 AM PDT EDT"
> format(x, format="%c", usetz=FALSE)
[1] "Fri 25 Jul 2014 12:44:03 AM PDT"
> format(x, format="%c")
[1] "Fri 25 Jul 2014 12:44:03 AM PDT" <~~~ Incorrect time. should be 09:44:03 PM PDT day prior
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RPostgreSQL_0.4 DBI_0.2-7 XML_3.98-1.1 sendmailR_1.1-2 base64enc_0.1-1 data.table_1.9.2
[7] sos_1.3-8 brew_1.0-6 Revobase_7.0.0 RevoMods_7.0.0 RevoScaleR_7.0.0 lattice_0.20-24
[13] rpart_4.1-4 colorout_1.0-1
loaded via a namespace (and not attached):
[1] codetools_0.2-8 foreach_1.4.1 grid_3.0.2 iterators_1.0.6 plyr_1.8 reshape2_1.2.2 stringr_0.6.2
[8] tools_3.0.2
> Sys.time()
[1] "2014-07-25 01:13:06 EDT"
> format(x, format="%c", tz="America/New_York")
[1] "Fri Jul 25 00:44:03 2014"
> format(x, format="%c", tz="America/New_York", usetz=TRUE)
[1] "Fri Jul 25 00:44:03 2014 EDT"
> format(x, format="%c", usetz=TRUE)
[1] "Fri Jul 25 00:44:03 2014 EDT"
> format(x, format="%c", usetz=FALSE)
[1] "Fri Jul 25 00:44:03 2014"
> format(x, format="%c")
[1] "Fri Jul 25 00:44:03 2014"
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] tools stats graphics grDevices utils datasets methods base
other attached packages:
[1] Rook_1.0-9 Rfacebook_0.4 rjson_0.2.14 httr_0.2 XML_3.95-0.2
[6] rJava_0.9-6 lubridate_1.3.1 forecast_5.4 timeDate_3010.98 zoo_1.7-10
[11] RPostgreSQL_0.4 DBI_0.2-7 reshape2_1.2.2 XLConnect_0.2-7 combinat_0.0-8
[16] sendmailR_1.1-2 base64enc_0.1-1 data.table_1.9.2 sos_1.3-8 brew_1.0-6
loaded via a namespace (and not attached):
[1] colorspace_1.2-4 digest_0.6.3 fracdiff_1.4-2 grid_3.0.2 lattice_0.20-24
[6] nnet_7.3-7 parallel_3.0.2 plyr_1.8 quadprog_1.5-5 Rcpp_0.11.1
[11] RCurl_1.95-4.1 stringr_0.6.2 tseries_0.10-32
x <- structure(1406263443, class = c("POSIXct","POSIXt"))
x <- structure(1406263443, class = c("POSIXct","POSIXt"), tzone = "America/Los_Angeles")
x <- Sys.time()
x <- structure(1406263443, class = c("POSIXct","POSIXt"))
format(x, format="%c", tz="America/New_York", usetz=TRUE)