我已经被问过了,但是我找不到确切的答案。
如果我有一个代表午夜以来毫秒的数字,例如34200577,如何将其转换为R时间?
最佳答案
在午夜构造一个“基准时间”,将给定的毫秒转换为秒后添加为毫秒,并解释为时间:
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>
实际上,较短的
R> ISOdatetime(2013,8,22,0,0,0) + 34200577/1e3
[1] "2013-08-22 09:30:00.576 CDT"
R>
和
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>