Нулевую точку мы можем получить, выполнив:
strftime(as.POSIXlt.numeric(0, format="%OS", origin="1970-01-01") - 7200, format="%R")
# [1] "00:00"
Соответственно:
t.adj <- 0
res <- strftime(as.POSIXlt.numeric(v/1000, format="%OS", origin="1970-01-01") - t.adj*3600,
format="%R", tz="GMT")
res
# [1] "01:38" "01:30" "01:04" "02:03" "01:31" "01:55"
class(res)
# [1] "character"
Дата не имеет значения, поскольку:
class(res)
# [1] "character"
Обратите внимание, , что это решение может зависеть от вашего Sys.getlocale("LC_TIME")
. В приведенном выше решении есть дополнительная настройка часов t.adj
*, однако в моем личном стандарте она установлена на ноль, чтобы получить правильные значения.
Данные
v <- c(5936500, 5438500, 3845400, 7439900, 5480200, 6903900)
* Для автоматизации локализации вы можете посмотреть ответы на этот вопрос .