我在数据框中有一个被识别为字符类的时间戳。出于某种原因,我无法将其转换为poxis时间戳。
以下是数据样本。
ID dateTime stage
1 2016-11-01T00:00:00.000Z 4.82
2 2016-11-01T00:15:00.000Z 4.83
3 2016-11-01T00:30:00.000Z 4.84
4 2016-11-01T00:45:00.000Z 4.85
5 2016-11-01T01:00:00.000Z 4.86
6 2016-11-01T01:15:00.000Z 4.87
我尝试过使用以下内容。
format(df$dateTime, "Y%-%m-%d %h:%m")
as.Date(df$dateTime, "Y%-%m-%d %h:%m")
as.POSIXct(df$dateTime, tz="GMT")
上述尝试都没有奏效。在尝试每一个之后,这个课将永远作为角色出现。
有什么建议吗?
答案 0 :(得分:5)
我们可以使用anytime
library(anytime)
anytime('2016-11-01T00:15:00.000Z')
#[1] "2016-11-01 00:15:00 IST"
或使用strptime
strptime('2016-11-01T00:15:00.000Z', '%Y-%m-%dT%H:%M:%OSZ')
#[1] "2016-11-01 00:15:00 IST"
答案 1 :(得分:0)
Z表示它是UTC时间。因此,一个选项就是删除该字母并转换为POSIXCT并使用tz =“UTC”。由于数据框架不易重现,我只使用两个日期的向量:
x<- as.POSIXct( gsub(pattern = "[A-Z]",replacement = " ",
x = c( "2016-11-01T00:45:00.000Z","2016-11-01T00:39:00.000Z") ) ,
tz="UTC" )
x
class(x)