x <- 1472562988 + 1:10; tz <- rep("EST",10) # Case 1: Works as documented ct <- as.POSIXct(x, tz=tz[1], origin="1960-01-01") # Case 2: Fails ct <- as.POSIXct(x, tz=tz, origin="1960-01-01") If case 2 worked, it'd be a little easier to process paired (time, time zone) vectors from different time zones.