在R中从日期时间更改为数字AND并返回日期时间

joe*_*eln 5 datetime r

看到其他人无法重现这一点。任何对可能导致我所看到的系统设置的猜测都将不胜感激。这是在由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)

我尝试了一些变体,包括显式指定时区,但一直都在发生这种变化。

Cat*_*ath 5

我认为这只是指定时区的问题:

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