将日期时间转换为POSIXct的问题

时间:2016-05-17 22:47:43

标签: r datetime time timezone time-series

我正在尝试使用格式'%Y-%m-%d%H:%M:%S'创建一年中每个小时的日期时间,但是如果我运行“原始代码” “我发布于2014-12-31 16:00:00以下。我发现我必须在开始时将它抵消8小时,在结束时将其抵消7以获得正确的日期范围。我想知道为什么会这样?我的目标是从2015-01-01 00:00:00开始,到2015-12-31 23:00:00结束。

代码:

## problem with conversion, have to offset by 8 hours to start at 2015-01-01 00:00:00
tseries <- seq.POSIXt(as.POSIXct(strptime("2015-01-01 08:00:00",
                     '%Y-%m-%d %H:%M:%S')), 
                      as.POSIXct(strptime("2016-01-01 07:00:00",
                     '%Y-%m-%d %H:%M:%S')), by="hour")
tseries <- format.POSIXct(tseries,'%Y-%m-%d %H:%M:%S')

df  <- data.frame(VisitDateTime=tseries)
df2 <- df
df2$VisitDateTime<-as.POSIXct(df$VisitDateTime,'%Y-%m-%d %H:%M:%S')

原始代码:

tseries <- seq.POSIXt(as.POSIXct(strptime("2015-01-01 00:00:00",
                      '%Y-%m-%d %H:%M:%S')), 
                      as.POSIXct(strptime("2015-12-31 23:00:00",
                      '%Y-%m-%d %H:%M:%S')), by="hour")
tseries <- format.POSIXct(tseries,'%Y-%m-%d %H:%M:%S')

df  <- data.frame(VisitDateTime=tseries)
df2 <- df
df2$VisitDateTime<-as.POSIXct(df$VisitDateTime,'%Y-%m-%d %H:%M:%S')

0 个答案:

没有答案