Это поведение задокументировано в ?c
, ?DateTimeClasses
и ?unlist
:
С ?DateTimeClasses
:
Использование c
на объектах "POSIXlt
" преобразует их в текущий часовой пояс, а на объектах "POSIXct
" удаляются любые атрибуты "tzone
" (даже если они все отмечены одним и тем же часовым поясом). ). *
С ?c
:
c
иногда используется для побочного эффекта удаления атрибутов, кроме имен. *
Тем не менее, мое тестирование показывает, что целостность ваших данных остается неизменной, несмотря на использование c
или unlist
. Например:
x <- structure(1317830532, class = c("POSIXct", "POSIXt"),
tzone = "GMT")
y <- structure(1317830532+3600, class = c("POSIXct", "POSIXt"),
tzone = "PST8PDT")
x
[1] "2011-10-05 16:02:12 GMT"
y
[1] "2011-10-05 10:02:12 PDT"
strftime(c(x, y), format="%Y/%m/%d %H:%M:%S", tz="GMT")
[1] "2011/10/05 16:02:12" "2011/10/05 17:02:12"
strftime(c(x, y), format="%Y/%m/%d %H:%M:%S", tz="PST8PDT")
[1] "2011/10/05 09:02:12" "2011/10/05 10:02:12"
strftime(unlist(y), format="%Y/%m/%d %H:%M:%S", tz="PST8PDT")
[1] "2011/10/05 10:02:12"
Ваш марсоход должен быть в порядке, если вы используете R для отслеживания дат.