Я хочу рассчитать разницу во времени между летним временем и не летнее время. Но я не знаю, как сообщить R, что время - это летнее время или нет.Рассчитать разницу во времени между летним временем и не летним временем
Например, Phoenix не регулирует летнее время летом, тогда как в большинстве районов США. Если я хочу рассчитать разницу во времени в следующем, это должно быть 3 часа, а не 2 часа. tzone = «America/Phoenix» автоматически установит время как «MST», которое является летним временем, но это не то, что я хочу.
library(lubridate)
x <- "22/5/2016 23:50"
x <- dmy_hm(x)
x1 <- force_tz(x, tzone = "America/Phoenix")
x2 <- force_tz(x, tzone = "EST")
x1-x2
# The output is "Time difference of 2 hours". But actually it is supposed to be 3 hours.
Я попытался установить tzone = «EDT» или «MDT», чтобы исправить это. Но кажется, что R не позволяет распознавать эти часовые пояса.
> x2 <- force_tz(y, tzone = "EDT")
Warning messages:
1: In as.POSIXct.POSIXlt(lt) : unknown timezone 'EDT'
2: In as.POSIXlt.POSIXct(ct) : unknown timezone 'EDT'
> x3 <- force_tz(y, tzone = "MDT")
Warning messages:
1: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'EDT'
2: In as.POSIXct.POSIXlt(lt) : unknown timezone 'MDT'
3: In as.POSIXlt.POSIXct(ct) : unknown timezone 'MDT'
Это * три * часа в * лето * не зима. См. Мой ответ. –
Спасибо, Дирк! Ваш код работает. Но то, что я имею в виду в моем коде, - летнее время. Я поставил дату перед месяцем. Чтобы уточнить это, я изменяю исходную дату до 22/5/2016 – Bin
Ahh. Это общий формат даты, но легко ошибиться (по крайней мере, в этой части мира). Лучше всего придерживаться 2016-05-22. –