2
我在大西洋夏令時(GMT + 4)有一個日期時間列,並希望使用下面的代碼轉換爲UTC,但我無法找到正確的時區以獲取代碼工作(它不承認ADT或GMT + 4)。請有人幫忙,因爲我正在圍繞圈子,tzone的幫助頁面沒有提供解決方案。如何將GMT + 4時區轉換爲UTC
實施例的數據:
> dput(df)
structure(list(Date = c("05/04/17", "05/04/17", "05/04/17", "05/04/17",
"05/04/17", "05/04/17", "05/04/17"), Time = c(" 12:10:26", " 12:11:01",
" 12:11:38", " 12:12:13", " 12:12:48", " 12:13:24", " 12:13:58"
)), .Names = c("Date", "Time"), class = "data.frame", row.names = c(NA,
-7L))
> df
Date Time
1 05/04/17 12:10:26
2 05/04/17 12:11:01
3 05/04/17 12:11:38
4 05/04/17 12:12:13
5 05/04/17 12:12:48
6 05/04/17 12:13:24
7 05/04/17 12:13:58
#Change system time to Atlantic Daylight Time (GMT+4)
Sys.setenv(TZ = "ADT")
Sys.time()
#Combine date and time columns and convert into POSIXct object
df$datetime_ADT = paste(df$Date,df$Time)
df$datetime_ADT = dmy_hms(df$datetime_ADT)
str(df$datetime_ADT)
#create new column for UTC datetimes
df$datetime_utc = df$datetime_ADT
#transform ADT time into UTC time
attr(df$datetime_utc, "tzone") = "UTC"
#check timezone change worked!
df$datetime_utc[1]
df$datetime_ADT[1]
#change system timezone back to default
Sys.setenv(TZ = "")
'as.POSIXct(PA ste(df $ Date,df $ Time,'+0400'),format ='%d /%m /%y%T%z',tz ='UTC')' – alistaire
我找不到ADT,它是UTC plus 4.這對我來說似乎更加準確,但我可能完全錯誤了'df [,DateTime:= mdy_hms(paste0(Date,Time),tz ='Canada/Atlantic')%>%with_tz(「UTC」)] '。我使用'lubridate'和'data.table'和'dplyr' –