часовые пояса в R :как избежать двусмысленных терминов, таких как EST?

У меня есть ряд временных меток символов в 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.

6
задан sfuj 13 August 2012 в 03:19
поделиться