gpt4 book ai didi

r - R : how to avoid ambiguous terms such as EST? 中的时区

转载 作者:行者123 更新时间:2023-12-04 15:01:52 26 4
gpt4 key购买 nike

我在 R 中有一系列字符时间戳。当我将它们的类更改为 POSIXct 时R 使用直观的方法分配不明确的时区 EST .

例如:

as.POSIXct("2012-08-06 15:32:00") 
as.POSIXct("2012-08-06 15:32:00", tz = "Australia/Brisbane")
as.POSIXct("2012-08-06 15:32:00", tz = "")

在我的两个(Mac 和 Windows)机器上都产生相同的输出:
"2012-08-06 15:32:00 EST"

这里的问题是 EST可以是任意数量的时区:美国东部标准时间、澳大利亚东部标准时间或加拿大其他时区(来自 ?timezone):

Beware that some of these designations may not be what you think: in particular EST is a time zone used in Canada without daylight savings time, and not EST5EDT nor (Australian) Eastern Standard Time.



有一种设置时区的方法可以避免这种情况 EST标签。 R ?timezone 中提到了它,但没有完全解释。帮助。将 x 设置为好奇号登陆火星的时间,如 Australian news service 报告的那样:
x <- as.POSIXct("2012-08-06 15:32:00", tz = "Etc/GMT-10")
x
"2012-08-06 15:32:00 GMT-10"

我们可以通过将其转换为美国时区并检查 Californian news report 来测试这是否正确。 :
y <- format(x, tz = "America/Los_Angeles")
y
"2012-08-05 22:32:00"

如果使用此 Etc/GMT+nEtc/GMT-n符号,请注意以下来自 ?timezone 的警告:

Many systems support timezones of the form GMT+n and GMT-n, which are at a fixed offset from UTC (hence no DST). Contrary to some usage (but consistent with names such as PST8PDT), negative offsets are times ahead of (east of) UTC, positive offsets are times behind (west of) UTC.

最佳答案

第一个示例中的第一行和第三行产生相同的输出,因为 tz=""as.POSIXct 的默认值.第二行更有趣,因为时区是明确定义的。

但请注意 "EST"只是默认情况下时区的打印方式。 tzone属性还是很明确的。

R> x <- as.POSIXct("2012-08-06 15:32:00", tz="Australia/Brisbane")
R> x
[1] "2012-08-06 15:32:00 EST"
R> attr(x, "tzone")
[1] "Australia/Brisbane"

关于r - R : how to avoid ambiguous terms such as EST? 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com