如何在R中将Sys.Date()
从UTC转换为GMT +2:00
。我尝试过下面提到的代码,但它不起作用。
Today_Date<-Sys.Date(TZ,'GMT +2:00')
我倾向于在R 中使用lubridate进行日期工作
td <- ymd( Sys.Date(), tz = "GMT" )
这足够吗?
虽然Date
对象在技术上没有时区,但它们可能会受到时区的影响,具体取决于使用情况(例如,小数日期或转换为POSIXt
对象)。
要回答查找格式正确的TZ字符串的字面问题,请使用OlsonNames()
:
grep("GMT", OlsonNames(), value = TRUE)
# [1] "Etc/GMT" "Etc/GMT-0" "Etc/GMT-1" "Etc/GMT-10" "Etc/GMT-11"
# [6] "Etc/GMT-12" "Etc/GMT-13" "Etc/GMT-14" "Etc/GMT-2" "Etc/GMT-3"
# [11] "Etc/GMT-4" "Etc/GMT-5" "Etc/GMT-6" "Etc/GMT-7" "Etc/GMT-8"
# [16] "Etc/GMT-9" "Etc/GMT+0" "Etc/GMT+1" "Etc/GMT+10" "Etc/GMT+11"
# [21] "Etc/GMT+12" "Etc/GMT+2" "Etc/GMT+3" "Etc/GMT+4" "Etc/GMT+5"
# [26] "Etc/GMT+6" "Etc/GMT+7" "Etc/GMT+8" "Etc/GMT+9" "Etc/GMT0"
# [31] "GMT" "GMT-0" "GMT+0" "GMT0"
我通常建议不要使用GMT/
变体,因为它们倾向于忽略DST,尽管这可能是您想要的。