как преобразовать время эпохи в читаемое человеком время в миллисекундах - PullRequest
0 голосов
/ 05 июля 2018

У меня есть данные, которые имеют время эпохи, и мне нужно извлечь читаемое человеком время в году, месяце, дне, минутах, секундах, миллисекундах.

время до преобразования: 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 голосов
/ 05 июля 2018
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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...