ho una colonna di data e ora in formato personaggio che assomiglia a questo:Lettura dei dati timestamp in R da più fusi orari
2015-09-24 06:00:00 UTC
2015-09- 24 05:00:00 UTC
dateTimeZone <- c("2015-09-24 06:00:00 UTC","2015-09-24 05:00:00 UTC")
vorrei convertire questi dati di caratteri in dati in tempo utilizzando POSIXct, e se sapevo che tutto il tempo francobolli erano in UTC, vorrei fare in questo modo:
dateTimeZone <- asPOSIXct(dateTimeZone, tz="UTC")
Tuttavia, non necessariamente so che tutto il tempo francobolli sono in UTC, quindi ho cercato
dateTimeZone <- asPOSIXct(dateTimeZodateTimeZone, format = "%Y-%m-%d %H:%M:%S %Z")
Tuttavia, poiché strptime supporta% Z solo per l'uscita, questo restituisce il seguente errore:
Error in strptime(x, format, tz = tz) : use of %Z for input is not supported
Ho controllato la documentazione del pacchetto lubridate e non ho visto che gestisse questo problema in modo diverso rispetto a POSIXct.
È la mia unica opzione per controllare il fuso orario di ogni riga e quindi utilizzare il fuso orario appropriato con qualcosa di simile al seguente?
temp[grepl("UTC",datetimezone)] <- as.POSIXct(datetimezone, tz="UTC")
temp[grepl("PDT",datetimezone)] <- as.POSIXct(datetimezone, tz="America/Los_Angeles")