如何从POSIXct元素中提取正确的日期?

时间:2015-03-23 09:32:51

标签: r posix posixct as.date

如何从代码中的第一列获取正确的日期?

test <- data.frame(posixdate = c("2013-05-01 00:59:00", "2013-05-01 01:59:00", "2013-05-01 02:59:00", "2013-05-01 03:59:00"))
test$posixdate <- as.POSIXct(test$posixdate, format="%Y-%m-%d %H:%M:%S" )
test$date <- as.Date(test$posixdate)

上面的代码导致:

  posixdate           date
1 2013-05-01 00:59:00 2013-04-30
2 2013-05-01 01:59:00 2013-04-30
3 2013-05-01 02:59:00 2013-05-01
4 2013-05-01 03:59:00 2013-05-01

前两个日期不正确。我做错了什么? 如果as.Date()不是正确的函数,我怎样才能得到日期(没有小时,分钟,秒)?

提前致谢!

2 个答案:

答案 0 :(得分:0)

尝试使用lubridate包。这个对我有用。

library(lubridate)

as.Date(ymd_hms(test$posixdate))

[1] "2013-05-01" "2013-05-01" "2013-05-01" "2013-05-01"

答案 1 :(得分:0)

问题是时区

尝试你的时区(可能不是GMT)

test$date2 <- as.Date(test$posixdate, "GMT")

并阅读this帖子