Если вы хотите перевести дату и время с вашего текущего часового пояса на UTC, вам необходимо импортировать в свой часовой пояс, а затем просто сдвинуть часовой пояс дисплея на «UTC». например: в австралийском EST я UTC + 10.
out <- as.POSIXct("12/31/2014 6:42:52 PM", format="%m/%d/%Y %H:%M:%S")
out
#"2014-12-31 06:42:52 EST"
#(Australian Eastern Standard Time)
as.numeric(out)
#[1] 1419972172
Теперь смещение часового пояса для отображения:
attr(out, "tzone") <- "UTC"
out
#[1] "2014-12-30 20:42:52 UTC"
# display goes 10 hours backwards as I'm UTC+10
as.numeric(out)
#[1] 1419972172
Обратите внимание, что это не влияет на основные числовые данные (в секундах с 1970-01-01), он изменяет только то, что отображается.
Вы попробовали 'strptime (" 12/31/2014 6:42:52 PM ", format ="% m /% d /% Y% H:% M:% S ", tz =" UTC ") '? –
Какова ваша текущая часовая зона в консоли R, введите 'Sys.timezone()' – ccapizzano
'as.POSIXct (" 31.12.2016 6:42:52 PM ", format ="% m /% d /% Y% H:% M:% S ", tz =" UTC ")' - отбросить часть 'as.Date()' в середине. Это не нужно, и это просто означает, что вы сокращаете компонент времени, заполняя преобразование. Ответ @MamounBenghezal также возвращает 'POSIXlt' вместо даты/времени' POSIXct'. Используйте 'as.POSIXct' в предпочтении, поскольку он, как правило, более адаптируется. – thelatemail