Tôi có một cột của tem thời gian ở định dạng nhân vật trông như thế này:Đọc dữ liệu timestamp trong R từ nhiều múi giờ
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")
tôi muốn chuyển đổi nhân vật này dữ liệu vào dữ liệu thời gian sử dụng POSIXct, và nếu tôi biết rằng tất cả các tem thời gian được tính theo giờ UTC trong, tôi sẽ làm điều đó như thế này:
dateTimeZone <- asPOSIXct(dateTimeZone, tz="UTC")
Tuy nhiên, tôi không nhất thiết phải biết rằng tất cả các tem thời gian là ở UTC, vì vậy tôi cố gắng
dateTimeZone <- asPOSIXct(dateTimeZodateTimeZone, format = "%Y-%m-%d %H:%M:%S %Z")
Tuy nhiên, do strptime hỗ trợ% Z chỉ dành cho đầu ra, điều này sẽ trả về lỗi sau:
Error in strptime(x, format, tz = tz) : use of %Z for input is not supported
Tôi đã kiểm tra tài liệu cho gói lubridate và tôi không thể thấy rằng nó xử lý vấn đề này khác với POSIXct.
Tùy chọn duy nhất của tôi là kiểm tra múi giờ của mỗi hàng và sau đó sử dụng múi giờ thích hợp với một số thông tin như sau?
temp[grepl("UTC",datetimezone)] <- as.POSIXct(datetimezone, tz="UTC")
temp[grepl("PDT",datetimezone)] <- as.POSIXct(datetimezone, tz="America/Los_Angeles")