首先,我們需要讓美國紐約時間時間(這EST」也是模棱兩可,由於在澳大利亞以及在東部時區的存在,以明確的方式,更好的是EST5EDT或「美國/紐約」)如果您運行在不同的時區,使用你沒有得到,同時代碼:
> d =as.POSIXct(c("2015-06-19 00:38:08 EST","2015-06-19 00:38:33 EST"))
> d
[1] "2015-06-19 00:38:08 PDT" "2015-06-19 00:38:33 PDT"
的字符時間時區部分的時候基本上忽略用as.POSIXct代替。使用:
> d =as.POSIXct(c("2015-06-19 00:38:08 EST","2015-06-19 00:38:33 EST"), tz="America/New_York", usetz=TRUE)
> d
[1] "2015-06-19 00:38:08 EDT" "2015-06-19 00:38:33 EDT"
請注意,顯示夏令時的正確顯示。然後你可以使用format.POSIXt
在GMT/UCT/UTC時區的「同時」輸出:
> format(d, tz="GMT")
[1] "2015-06-19 04:38:08" "2015-06-19 04:38:33"
我希望這是一個如何strptime
處理日期時間輸入一個公平的總結:
日期時間隱式地輸入到由區域設置設置的當前時區中,任何尾隨的tz
指示符都會被忽略而不發出任何警告,並將其作爲UCT存儲,其偏移由語言環境與UCT的差異決定。時區格式化% - 'specials'僅用於strftime
和format.POSIXt
的輸出。
你有沒有試過? – Heroka
'as.POSIXlt(d,tz =「GMT」)''給出''2015-06-19 00:38:08 GMT「' –
當我運行它時它改變了時間 – user3022875