首先,我们需要让美国纽约时间时间(这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