如何将纪元时间转换为以毫秒为单位的人类可读时间
how to convert epoch time to human readable time in milliseconds
我有一个具有纪元时间的数据,我需要提取以年、月、日、分、秒、毫秒为单位的人类可读时间。
转换前的纪元时间:
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)
}
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"
我有一个具有纪元时间的数据,我需要提取以年、月、日、分、秒、毫秒为单位的人类可读时间。
转换前的纪元时间: 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)
}
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"