从我的时间戳中删除一小时

时间:2014-06-02 17:35:53

标签: r time strftime

我尝试使用strftime函数从我的时间戳中创建可读字符串。我的问题是,每当我尝试进行转换时,都会有一个小时消失。

我在比利时这是夏天,所以我的linux设置为GMT + 2

jt@jt-roxane:~$ date
lundi 2 juin 2014, 19:18:48 (UTC+0200)

jt@jt-roxane:~$ R

R version 2.14.1 (2011-12-22)

> Sys.time()
[1] "2014-06-02 19:19:46 CEST"

我的朋友尝试转换时间戳1401729132时,它已正确翻译为

as.POSIXct(1401729132, origin="1970-01-01")
"2014-06-02 19:12:12 CEST"

但是当我尝试这样做时,答案就是

> as.POSIXct(1401729132, origin="1970-01-01")
[1] "2014-06-02 18:12:12 CEST"

我尝试设置正确的时区,但似乎无法解决问题。

> strftime(as.POSIXct(1401729132, origin="1970-01-01"), '%H:%M:%S', tz="UTC-2")
[1] "18:12:12"

你对它的来源有什么想法吗?

感谢您的帮助!

修改

我已经尝试在as.POSIXct()中设置正确的TZ - 该行给出了错误的答案:

> as.POSIXct(1401729132, origin="1970-01-01", tz="GMT")
[1] "2014-06-02 17:12:12 GMT"

1 个答案:

答案 0 :(得分:4)

你的朋友在同一时区吗?运行相同的操作系统?

您应该在执行tz=时设置时区参数(as.POSIXct),而不是在执行strftime时。创建日期时,它将使用您当地的当前时区

as.POSIXct(1401729132, origin="1970-01-01", tz="GMT")
# "2014-06-02 17:12:12 GMT"

请阅读?Sys.timezone帮助页面,了解操作系统特定时区数据库的变化方式和原因。