Страница справки фактически намекает на разницу:
Value:
‘as.POSIXct’ and ‘as.POSIXlt’ return an object of the appropriate
class. If ‘tz’ was specified, ‘as.POSIXlt’ will give an
appropriate ‘"tzone"’ attribute.
Эта штука привередливая - я думаю, что для as.POSIXct
происходит неявное преобразование TZ. Считайте, что
R> print(as.numeric(as.POSIXct(as.POSIXlt(1268736919,
origin="1970-01-01"))), digits=10)
[1] 1268736919
R> print(as.numeric(as.POSIXct(1268736919, origin="1970-01-01")), digits=10)
[1] 1268758519
второй (с использованием as.POSIXct
) не возвращает исходный ввод. К сожалению, Брайан Д. Рипли, кажется, единственный человек, имеющий все детали здесь.
Наконец, вы не можете сделать это без происхождения. Но вы можете определить оболочки, которые используют эпоху в качестве источника (как здесь) или использовать 2000-01-01 или ... Просто сохраняйте это согласованным.