Преобразование строки символа datetime в двойное значение миллисекунд с 1 января 1960 г.

Я узнал, как преобразовать формат даты и времени Stata из миллисекунд с января 1960 года в R из связанного вопроса (см. ниже):

as.POSIXct(874022400000/1000, origin="1960-01-01")

Я хочу сделать обратное в R: т.е. с датой, выраженной в виде символьной строки, узнать, как вернуть значение datetime в миллисекундах с 01 января 1960 года 00:00:00. Любые предложения будут высоко оценены.

1 ответ

Используйте as.numeric для принуждения даты-времени обратно к секундам с эпохи. Поскольку R использует 1970 в качестве своего начала, вы должны дополнительно учитывать смещение 1960-1970 годов. Наконец, конечно, позаботьтесь о преобразовании секунд в миллисекунды.

> mydate = as.POSIXct(874022400000/1000, origin="1960-01-01")
> 1000 * (as.numeric(mydate) - as.numeric(as.POSIXct('1960-01-01')))
[1] 874022400000

licensed under cc by-sa 3.0 with attribution.