看到其他人无法重现这一点。任何对可能导致我所看到的系统设置的猜测都将不胜感激。这是在由IT配置的工作PC上,但是今天晚上我将与我的个人安装进行比较,然后更新问题。
使用基数R,我试图读取日期和时间,转换为数字,然后转换回日期时间。我遇到的问题是引入+ 5小时班次,我认为是由于时区默认值。
从上一个问题开始,提供了将日期时间更改为数字的示例: 从日期和小时格式更改为数字格式
> x <- as.POSIXct("9/27/2011 3:33:00 PM", format="%m/%d/%Y %H:%M:%S %p")
> x
[1] "2011-09-27 03:33:00 EDT"
> y <- as.numeric(x)
[1] 1317108780
Run Code Online (Sandbox Code Playgroud)
* 上面代码中的错字已修复
当我尝试将其恢复为最新时间时,我得到:
> z <- as.POSIXct(y, origin="1970-01-01")
> z
[1] "2011-09-27 08:33:00 EDT"
Run Code Online (Sandbox Code Playgroud)
我尝试了一些变体,包括显式指定时区,但一直都在发生这种变化。
我认为这只是指定时区的问题:
x <- as.POSIXct("9/27/2011 15:33:00", format="%m/%d/%Y %H:%M:%S")
> as.POSIXct(as.numeric(x), origin="1970-01-01",tz="EST") # as.numeric(x)=1317130380
[1] "2011-09-27 08:33:00 EST"
Run Code Online (Sandbox Code Playgroud)
但 :
x <- as.POSIXct("9/27/2011 15:33:00", format="%m/%d/%Y %H:%M:%S",tz="EST")
> as.POSIXct(as.numeric(x), origin="1970-01-01",tz="EST") # as.numeric(x)=1317155580
[1] "2011-09-27 15:33:00 EST"
Run Code Online (Sandbox Code Playgroud)
备注:我将 03:33:00 PM 简化为 15:33:00