我有一个UTC时间戳。我想在R
中将其转换为YYYY / MM / DD格式。
例如,1318394558766
。我试了format
命令失败了。
感谢任何帮助。
谢谢!
答案 0 :(得分:8)
您可以使用as.POSIXct
或as.POSIXlt
。但是,您必须知道开始的毫秒数的起源日期。
as.POSIXct(1318394558766/1000, origin='1970-01-01')
> unlist(as.POSIXlt(1318394558766/1000, origin='1970-01-01'))
sec min hour mday mon year wday yday isdst
38.766 42.000 21.000 11.000 9.000 111.000 2.000 283.000 1.000
>
然后您可以使用format
获得所需的YYYY / MM / DD:
format(as.POSIXct(1318394558766/1000, origin='1970-01-01'), format='%Y/%m/%d')
答案 1 :(得分:2)
除了Justin的回答(因为我无法发表评论),您可能希望将tz添加到转换中。
as.POSIXct(1318394558766/1000, origin='1970-01-01')
[1] "2011-10-12 05:42:38 EST"
as.POSIXct(1318394558766/1000, origin='1970-01-01', tz="UTC")
[1] "2011-10-12 04:42:38 UTC"
有关详细信息,请参阅;
?timezone
答案 2 :(得分:1)
另一种解决方案是使用.POSIXct
:
utc <- .POSIXct(1318394558766/1000, tz="UTC")
然后您可以轻松地将utc
转换为日期或字符向量:
as.Date(utc) # Date vector
format(utc, "%Y-%m-d") # character vector