将毫秒时间戳解析为R中的时间

Cra*_*aig 4 datetime r time-series

我以前曾经问过,但我找不到确切的答案.如果我有一个数字表示自午夜以来的毫秒数,比如34200577,我该如何将其转换为R时间?

Dir*_*tel 6

在午夜构建"基准时间",将转换为秒后的给定毫秒加上并解释为时间:

R> as.POSIXct(as.numeric(ISOdatetime(2013,8,22,0,0,0)) + 34200577/1e3, 
+             origin="1970-01-01")
[1] "2013-08-22 09:30:00.576 CDT"
R> 
Run Code Online (Sandbox Code Playgroud)

实际上,越短

R> ISOdatetime(2013,8,22,0,0,0) + 34200577/1e3
[1] "2013-08-22 09:30:00.576 CDT"
R>
Run Code Online (Sandbox Code Playgroud)

同时工作以及ISOdatetime()返回一个在小数秒内运行的适当时间对象,因此我们只应用给定的偏移量.

这似乎是正确的

R> 34200577/1e3       # seconds
[1] 34200.6
R> 34200577/1e3/60    # minutes
[1] 570.01
R> 34200577/1e3/60/60 # hours
[1] 9.50016
R> 
Run Code Online (Sandbox Code Playgroud)