У меня есть ряд временных меток символов в R. Когда я меняю их класс на POSIXct
с помощью интуитивно понятных методов, R назначает неоднозначный часовой пояс EST
.
Например:
as.POSIXct("2012-08-06 15:32:00")
as.POSIXct("2012-08-06 15:32:00", tz = "Australia/Brisbane")
as.POSIXct("2012-08-06 15:32:00", tz = "")
все выдают один и тот же результат на моих двух (компьютерах Mac и Windows ):
"2012-08-06 15:32:00 EST"
Проблема здесь в том, что EST
может быть любое количество часовых поясов :Восточное стандартное время в США, Австралийское восточное стандартное время или другой часовой пояс в Канаде (из?timezone
):
Beware that some of these designations may not be what you think: in particular EST is a time zone used in Canada without daylight savings time, and not EST5EDT nor (Australian) Eastern Standard Time.
Существует способ установки часового пояса без этой метки EST
. Это упоминается, но не полностью объясняется в справке R ?timezone
. Установите x как время посадки Curiosity на Марс, как сообщает австралийская служба новостей :
x <- as.POSIXct("2012-08-06 15:32:00", tz = "Etc/GMT-10")
x
"2012-08-06 15:32:00 GMT-10"
. И мы можем проверить, что это правильно, преобразовав его в часовой пояс США и проверив Калифорнийский новостной репортаж :
y <- format(x, tz = "America/Los_Angeles")
y
"2012-08-05 22:32:00"
. При использовании этой нотации Etc/GMT+n
или Etc/GMT-n
обратите внимание на следующую оговорку из?timezone
:
Many systems support timezones of the form GMT+n and GMT-n, which are at a fixed offset from UTC (hence no DST). Contrary to some usage (but consistent with names such as PST8PDT), negative offsets are times ahead of (east of) UTC, positive offsets are times behind (west of) UTC.