我想将天数转换为日期:
> 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中。 有关于此的任何提示吗?
答案 0 :(得分:0)
对于原始转化,请参阅此问题:Converting numeric time to datetime POSIXct format in R以及这些页面:Date-times in R,Date-time conversions和Converting excel dates (number) to R date-time object。基本上,它取决于您的数据源,数据源(Excel,Apache等)的时间来源和单位。例如,您可能具有自数据源的时间原点以来的秒,分钟,小时或天的总时间,这对于Excel或Apache将是不同的。获得此信息后,您可以使用strptime
或origin
参数并转换为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