2015-06-18 55 views
2

我在PDT时区,我想将变量“s”更改为GMT时区。任何想法如何?如何更改Sys.time的时区()

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?? 
+0

'Sys.setenv(TZ = “GMT”)' – Khashaa

+1

@Khashaa这将工作,但也许他不想改变他的系统时区。 –

+1

您是否希望格林威治标准时间的相应时间用于PDT时间,或者您是否希望将标签从PDT改为GMT? – thelatemail

回答

2

取决于你想要做什么,有几个选项:从本地时间GMT

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

转移,无adustment:

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

转移到G MT,调整当地时间和GMT之间的时差。

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

,其等同于赋值操作:

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

也可以使用.POSIXct

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

只是注意到这调整了GMT的时间(即 - 相当于我的答案中的第二个例子)> – thelatemail