Tôi có dữ liệu chuỗi thời gian thu được từ trình ghi dữ liệu được đặt thành một múi giờ không có tiết kiệm ánh sáng ban ngày (NZST hoặc UTC + 12: 00) và kéo dài dữ liệu một vài năm. Trình ghi dữ liệu không xem xét các thay đổi DST và được đồng bộ hóa với giờ địa phương có/không có DST (tùy thuộc vào người đã triển khai nó).Nhập ngày giờ tại múi giờ được chỉ định, bỏ qua thời gian tiết kiệm ánh sáng ban ngày
Tuy nhiên, khi tôi nhận dữ liệu vào R, tôi không thể sử dụng đúng cách as.POSIXct
để bỏ qua DST. Tôi đang sử dụng R 2.14.0 trên một máy tính Windows với các thiết lập này:
> Sys.timezone()
[1] "NZDT"
> Sys.getlocale("LC_TIME")
[1] "English_New Zealand.1252"
Dưới đây là ba timestamps qua sự thay đổi mùa xuân DST, mỗi cách nhau 1 giờ ngoài:
> ts_str <- c("28/09/2008 01:00", "28/09/2008 02:00", "28/09/2008 03:00")
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="")
[1] "2008-09-28 01:00:00 NZST" NA
[3] "2008-09-28 03:00:00 NZDT"
> as.POSIXct(ts_str, format="%d/%m/%Y %H:%M", tz="UTC")
[1] "2008-09-28 01:00:00 UTC" "2008-09-28 02:00:00 UTC"
[3] "2008-09-28 03:00:00 UTC"
Như bạn có thể xem, các đồng hồ nhảy về phía trước tại 1:59 đến 3:00, vì vậy 2:00 là không hợp lệ, do đó NA. Hơn nữa, tôi có thể sử dụng tz="UTC"
để làm cho nó bỏ qua các thay đổi DST. Tuy nhiên, tôi muốn giữ đúng múi giờ vì tôi có chuỗi dữ liệu khác được ghi lại với DST (NZDT hoặc UTC + 13: 00) mà tôi muốn kết hợp (qua merge
) để phân tích.
Làm cách nào để định cấu hình tham số tz
trên máy tính MS Windows? Tôi đã thử nhiều thứ, chẳng hạn như "NZST", "Giờ chuẩn New Zealand", "UTC + 12: 00", "+1200", v.v., nhưng không có may mắn. Hoặc tôi có sửa đổi một số cài đặt khác không?
Bạn có thể sử dụng 'tz =" Etc/GMT + 12 "' – James
@James, tại sao bạn không trả lời? –
@BenBolker Sẽ làm gì, chỉ cần thêm chỉnh trang phù hợp để vượt qua giới hạn ký tự – James