在lubridate包中,当我使用now(tzone = 'Etc/GMT+3')时,当我的系统默认为UTC时,我得到的时间比我当前的UTC时间晚3小时,而不是提前3小时:现在(tzone ='Etc/GMT+3')[1]“2023-09-30 15:57:36 -03”当我尝试这个时,时间是18:57 UTC,所以我希望它说21:57。为什么它会减少时间而不是增加时间?
fdbelqdn1#
从?timezones:大多数平台支持“Etc/GMT+n”和“Etc/GMT-n”格式的时区(也可能没有前缀“Etc/”),它们假定与UTC有固定的偏移量(因此没有DST)。与某些预期相反(但与“PST8PDT”等名称一致),负偏移量是UTC的时间(东部),**正偏移量是UTC的时间(西部)。所以你可能会在lubridate::now("Etc/GMT-3")之后:
?timezones
Etc/GMT+n
Etc/GMT-n
Etc/
PST8PDT
lubridate::now("Etc/GMT-3")
lubridate::now("UTC") #> [1] "2023-09-30 19:56:33 UTC" lubridate::now("Etc/GMT-3") #> [1] "2023-09-30 22:56:33 +03"
1条答案
按热度按时间fdbelqdn1#
从
?timezones
:大多数平台支持“
Etc/GMT+n
”和“Etc/GMT-n
”格式的时区(也可能没有前缀“Etc/
”),它们假定与UTC有固定的偏移量(因此没有DST)。与某些预期相反(但与“PST8PDT
”等名称一致),负偏移量是UTC的时间(东部),**正偏移量是UTC的时间(西部)。所以你可能会在
lubridate::now("Etc/GMT-3")
之后: