随着最近Ubuntu(23.10 mantic)的更新,我的R不再识别"US/Eastern"
.
sessionInfo()
# R version 4.3.2 (2023-10-31)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 23.10
# Matrix products: default
# BLAS: /opt/R/4.3.2/lib/R/lib/libRblas.so
# LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3; LAPACK version 3.11.0
# locale:
# [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
# [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
# time zone: America/New_York
# tzcode source: system (glibc)
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
# other attached packages:
# [1] r2_0.10.0
# loaded via a namespace (and not attached):
# [1] compiler_4.3.2 clipr_0.8.0 fastmap_1.1.1 cli_3.6.2 tools_4.3.2 htmltools_0.5.7 rmarkdown_2.25 knitr_1.45 xfun_0.41
# [10] digest_0.6.34 rlang_1.1.3 evaluate_0.23
lubridate::with_tz(Sys.time(), tzone = "US/Eastern")
# Warning in with_tz.default(Sys.time(), tzone = "US/Eastern") :
# Unrecognized time zone 'US/Eastern'
# [1] "2024-03-18 13:49:56"
然而,在一个类似配置(R—wise)的22.04 jammy系统上,它工作得很好.
sessionInfo()
# R version 4.3.2 (2023-10-31)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 22.04.4 LTS
# Matrix products: default
# BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
# LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0
# locale:
# [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
# time zone: Etc/UTC
# tzcode source: system (glibc)
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
# loaded via a namespace (and not attached):
# [1] compiler_4.3.2
lubridate::with_tz(Sys.time(), tzone = "US/Eastern")
# [1] "2024-03-18 09:49:19 EDT"
为什么一个正常识别的TZ变得不可用?
这在操作系统本身是真的,不仅仅是在R中:
$ TZ="America/New_York" date
Mon Mar 18 10:22:03 AM EDT 2024
$ TZ="US/Eastern" date
Mon Mar 18 02:22:07 PM 2024
(注意第二个输出中缺少的TZ)