如何将纪元时间转换为以毫秒为单位的人类可读时间

时间:2018-07-05 08:40:45

标签: r epoch

我有一个具有纪元时间的数据,我需要以年,月,日,分钟,秒,毫秒为单位提取人类可读的时间。

转换前的纪元时间: 1517166673385

转换后,我需要使用以下格式: 20180128191113385

我已经编写了以下函数,效果很好,但是需要很长时间。我正在寻找一种更快的功能,因为我要处理数千个文件。

getDTI<- function(echotime){
  DTItemp<-as.POSIXct(as.POSIXct(as.numeric(substr(echotime,1,10)),  origin="1970-01-01", tz="GMT"), origin="1970-01-01", tz="GMT")
  DTI<-paste0(substr(DTItemp,1,4),substr(DTItemp,6,7),substr(DTItemp,9,10),substr(DTItemp,12,13),substr(DTItemp,15,16),substr(DTItemp,18,19),substr(test$STIME,11,13))

return(DTI)

}

1 个答案:

答案 0 :(得分:1)

a = 1517166673385
 paste0(format(as.POSIXct(a/1000,origin="1970-01-01", tz="GMT"),"%Y%m%d%H%M%S"),sprintf("%03d",a%%1000))   

[1]“ 20180128191113385”  以函数形式:

fun=function(a){
paste0(format(as.POSIXct(a/1000,origin="1970-01-01", 
tz="GMT"),"%Y%m%d%H%M%S"),sprintf("%03d",a%%1000))
}


 d=c(1517166673385, 1517701556075)

fun(d)
[1] "20180128191113385" "20180203234556075"