以秒为单位的R日期来源

时间:2017-01-30 15:28:53

标签: r datetime hdf5 rhdf5

我每天都有一个自作业开始后的秒数时间序列(00:00h UTC)。由于我想绘制其他数据的时间序列,我希望将时间序列转换为秒数到日期。所有数据都来自使用包rhdf5

读取的hdf5文件
>tiempo=h5read("rams2.h5","t_coords")
> class(tiempo)
[1] "array"
> head(tiempo)
[1]    0 1800 3600 5400 7200 9000

然后我尝试了as.POSIXct来构建一个数据帧(以后用于ggplot2)。

> temps<-as.data.frame(as.POSIXct(tiempo, origin = "1960-01-01 00:00"))
> class(temps)
[1] "data.frame"
> head(temps)
  as.POSIXct(tiempo, origin = "1960-01-01 00:00")
1                             1960-01-01 01:00:00
2                             1960-01-01 01:30:00
3                             1960-01-01 02:00:00
4                             1960-01-01 02:30:00
5                             1960-01-01 03:00:00
6                             1960-01-01 03:30:00

问题来自于“temps”的第一个值

  

1 1960-01-01 01:00:00

但它应该是1960-01-01 00:00:00,因为这是提供的原点,“tiempo”的第一个值是0.似乎每次都添加了一个小时。

也许我在设置原点时遗漏了什么?或者在阅读h5文件时?有什么想法吗?

提前致谢

PD:我无法提供示例数据,因为h5文件非常庞大。

正确代码 感谢ottlngr的回答和Richard Telford的评论,问题是通过添加tz =“UTC”来解决时区问题

temps<-as.data.frame(as.POSIXct(tiempo, origin = "1960-01-01 00:00:00",tz = "UTC"))

1 个答案:

答案 0 :(得分:1)

您可能应该使用tz中的as.POSIXct()参数,但很难说没有样本数据。看看这个问题,它可能会对您有所帮助:Change timezone in a POSIXct object