【问题标题】:How do you change the timezone of Sys.time()你如何改变 Sys.time() 的时区
【发布时间】:2015-06-18 00:57:09
【问题描述】:

我在 PDT 时区,我想将变量“s”更改为 GMT 时区。知道怎么做吗?

s<-Sys.time()
s
as.POSIXct(s,"GMT")

输出

> s<-Sys.time()
> s
[1] "2015-06-17 17:56:17 PDT"
> as.POSIXct(s,"GMT")
[1] "2015-06-17 17:56:17 PDT" # <--  how do I get this in GMT??

【问题讨论】:

  • Sys.setenv(TZ="GMT")
  • @Khashaa 这可行,但也许他不想更改系统时区。
  • 您想要 GMT 中的对应时间作为 PDT 时间,还是只想将标签从 PDT 更改为 GMT?
  • 我不想只更改标签。我想更改实际时间。因此,如果时间是太平洋夏令时间 17:56:17,我想加/减以到达不同的时区。

标签: r timezone


【解决方案1】:

根据您想要做什么,有几个选项:

s <- Sys.time()
s
#[1] "2015-06-18 11:21:22 EST"

从当地时间转移到格林威治标准时间,无需调整:

as.POSIXct(format(s),tz="GMT")
#[1] "2015-06-18 11:21:22 GMT"

转为格林威治标准时间,调整当地时间与格林威治标准时间的时差。

`attr<-`(s,"tzone","GMT")
#[1] "2015-06-18 01:21:22 GMT"

,相当于赋值操作:

attr(s,"tzone") <- "GMT"

【讨论】:

    【解决方案2】:

    你也可以使用.POSIXct

    s <- .POSIXct(s, "GMT")
    

    【讨论】:

    • 请注意,这会将时间调整为 GMT(即 - 相当于我的回答中的第二个示例)>
    猜你喜欢
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多