我想計算夏令時和非夏令時之間的時差。但我不知道如何讓R知道一段時間是否是夏令時。計算夏令時和非夏令時之間的時差
例如,鳳凰城在夏季不調整夏令時,而美國的大部分地區都是如此。如果我想計算下面的時差,它應該是3小時而不是2小時。 tzone =「America/Phoenix」會自動將時間設置爲「MST」,這是夏令時,但這不是我想要的。
library(lubridate)
x <- "22/5/2016 23:50"
x <- dmy_hm(x)
x1 <- force_tz(x, tzone = "America/Phoenix")
x2 <- force_tz(x, tzone = "EST")
x1-x2
# The output is "Time difference of 2 hours". But actually it is supposed to be 3 hours.
我試着設置tzone =「EDT」或「MDT」來解決這個問題。但似乎R不允許識別這些時區。
> x2 <- force_tz(y, tzone = "EDT")
Warning messages:
1: In as.POSIXct.POSIXlt(lt) : unknown timezone 'EDT'
2: In as.POSIXlt.POSIXct(ct) : unknown timezone 'EDT'
> x3 <- force_tz(y, tzone = "MDT")
Warning messages:
1: In as.POSIXlt.POSIXct(x, tz) : unknown timezone 'EDT'
2: In as.POSIXct.POSIXlt(lt) : unknown timezone 'MDT'
3: In as.POSIXlt.POSIXct(ct) : unknown timezone 'MDT'
* *夏天* *不是冬天* * 3 *小時。看到我的答案。 –
謝謝,德克!你的代碼有效。但我的代碼中的意思是夏天。我把月份放在月份前面。爲了澄清它,我將原始日期修改爲22/5/2016 – Bin
啊。這是一種常見的日期格式,但很容易出錯(至少在世界的這一部分)。最好堅持2016-05-22。 –