【发布时间】:2014-12-12 14:46:44
【问题描述】:
看到其他人无法重现这一点 任何关于可能导致我所看到的系统设置的猜测将不胜感激。这是在 IT 配置的工作 PC 上,但我将在今晚与我的个人安装进行比较,然后更新问题。
使用base R,我试图读取日期和时间,转换为数字,然后转换回日期时间。我遇到的问题是引入了 + 5 小时的轮班,我认为是由于时区默认设置。
在上一个问题中,提供了一个将日期时间转换为数字的示例: Change from date and hour format to numeric format
> 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
*上面代码中的错字已修复
当我尝试将其恢复到日期时间时,我得到:
> z <- as.POSIXct(y, origin="1970-01-01")
> z
[1] "2011-09-27 08:33:00 EDT"
我尝试了一些变体,包括明确指定时区,但我一直在得到这种转变。
【问题讨论】:
-
我无法重现这个(在将
y -> as.numeric(x)中的分配修复为<-之后)。 -
read
?strptime: "%p : AM/PM 区域设置中的指示符。与 %I 结合使用,而不与 %H 结合使用" 我不知道它是否能解决您的问题,但仍然,您可以先将%H更改为%I... -
感谢 CathG。我不会将 %p 与我自己的数据一起使用,这是基于先前链接的问题,以造福他人。我在所有尝试过的情况下都得到了这种转变,包括将
%T与我自己的数据一起使用。 -
你的
Sys.timezone()是什么? -
> Sys.timezone()[1] "EST"