У меня есть переменная POSIXct, которая читает 2016-12-15 20:11:29 PST, но PST неверен. Он должен на самом деле читать 2016-12-15 20:11:29 GMTПреобразование неправильного часового пояса
мне нужно сделать часовой пояс правильно, GMT, то мне нужно, чтобы преобразовать его в Нью-Йорк времени
Так что я дал 2016- 12-15 20:11:29 PST. Это действительно должно быть 2016-12-15 20:11:29 GMT, тогда мне нужно конвертировать 2016-12-15 20:11:29 GMT в «America/New_York», поэтому окончательный результат будет 16:11:29 Америка/New_York, потому что время в Нью-Йорке длится по часовой стрелке.
Я пробовал это много способов, но не могу заставить его работать. Есть идеи?
p = as.POSIXct("2016-12-15 20:11:29 PST")
p
********** UPDATE ********* мой реальный код использует переменную и предлагаемые решения не работают. смотри ниже
p = as.POSIXct("2016-12-15 20:11:29 PST")
out = as.POSIXct(p, tz="GMT")
out
attr(out,"tzone") <- "America/New_York"
out
> out
[1] "2016-12-15 20:11:29 PST"
> attr(out,"tzone") <- "America/New_York"
> out
[1] "2016-12-15 23:11:29 EST" ### this is incorrect
*** Это также лань сопли работы
p = as.POSIXct(p, usetz=TRUE, tz="GMT")
(format(p, tz="America/New_York"))
[1] "2016-12-15 23:11:29 EST"
> p = as.POSIXct(p, usetz=TRUE, tz="GMT")
> (format(p, tz="America/New_York"))
[1] "2016-12-15 23:11:29"
'out <- as.POSIXct (« 2016-12-15 20:11:29 PST », tz =« GMT »); attr (out, "tzone") <- "America/New_York" ', если вы хотите сохранить структуру POSIXct, но изменить часовой пояс. Но я согласен с тем, что результат 15:11:29 – thelatemail
Я вижу, что это работает в вашем коде, но в моем реальном коде у меня есть varaible, var, а не строка. поэтому он выглядит примерно как .POSIXct (var, usetz = TRUE, tz = "GMT"), и он не работает. Я попытаюсь воспроизвести и обновить вопрос – user3022875
, пожалуйста, см. Edit – user3022875