【问题标题】:Convert from GMT to EST [duplicate]从 GMT 转换为 EST [重复]
【发布时间】:2017-11-10 13:37:26
【问题描述】:

有什么有效的方法,如何在 R 中从 GMT 转换为 EST?

这是我尝试过的:

d1 <- as.POSIXlt(as.POSIXct("2001-05-15 12:30:00"), tz="GMT")
[1] "2001-05-15 10:30:00 GMT"
as.POSIXct(as.character(d1),tz="EST")
[1] "2001-05-15 10:30:00 EST"

【问题讨论】:

    标签: r


    【解决方案1】:

    实际上并没有深层意义上的“转换”。 POSIXct 对象始终存储为自纪元以来的秒数(1970 年 1 月 1 日午夜 UTC)。

    您所追求的转换是“肤浅的”,因为您要更改的只是对象的显示方式。

    这由POSIXct 对象的tzone 属性控制。

    因此,假设 attr(x, 'tzone') 已经是您的对象 x 的 GMT,您可以只写:

    attr(x, 'tzone') = 'EST'
    

    以您想要的方式改变这种肤浅的行为。

    【讨论】:

    • 当strptime 用于as.POSIX.ct 或format 时,我认为strptime 中的usetz 参数实际上可能使用时区信息,但事实并非如此。它只是意味着“在输出中打印时区”(参见?strptime)。所以,我认为这个 attr 修改是最好的方法,也许是 Sys.timezone 或 OlsonNames。 @MichaelChirico,我正在为其他人而不是您写这篇文章。我知道你要么知道,要么已经形成了意见。
    【解决方案2】:
    d1 <- as.POSIXct("2001-05-15 12:30:00", format='%Y-%m-%d %H:%M:%S', tz="GMT")
    format(d1,tz="America/New_York")
    

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 2014-06-25
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多