如何转换CEST至UTC?

时间:2017-12-21 13:55:17

标签: r

我想将天数转换为日期:

 > 15525.1+as.Date("1970-01-01")
 [1] "2012-07-04" ## correct but no time

我试过了:

> apollo.fmt <- "%B %d, %Y, %H:%M:%S"
> as.POSIXct((15525.1+as.Date("1970-01-01")), format=apollo.fmt, tz="UTC")
[1] "2012-07-04 04:24:00 CEST"

但正如您在CEST中看到的结果一样。但是我需要它在UTC中。 有关于此的任何提示吗?

2 个答案:

答案 0 :(得分:0)

对于原始转化,请参阅此问题:Converting numeric time to datetime POSIXct format in R以及这些页面:Date-times in RDate-time conversionsConverting excel dates (number) to R date-time object。基本上,它取决于您的数据源,数据源(Excel,Apache等)的时间来源和单位。例如,您可能具有自数据源的时间原点以来的秒,分钟,小时或天的总时间,这对于Excel或Apache将是不同的。获得此信息后,您可以使用strptimeorigin参数并转换为R日期时间对象。

如果您只关心更改时区,可以使用attr

> u <- Sys.time()
> u
[1] "2017-12-21 09:01:35 EST"
> attr(u, "tzone") <- "UTC"
> u
[1] "2017-12-21 14:01:35 UTC"

您可能需要检查机器的有效时区。获得适用于您的计算机的时区的好方法是googleway::google_timezone。要获取您所在位置的坐标(或您导入数据的位置),您可以在线查看这些坐标或使用ggmap::geocode() - 如果转换来自不同时区的数据中的时间戳,则非常有用。 / p>

答案 1 :(得分:0)

我认为问题是as.POSIXct如果时间已经是POSIXct则不会改变任何东西,所以tz选项没有效果。

按照here

的说明使用attr