将带有日期和时间信息的字符串列转换为R中的datetime类型

时间:2018-11-28 19:40:59

标签: r datetime data-manipulation

我正在从体育API中提取数据,并且我需要使用的startTime列的格式如下:

> dput(mydf)
structure(list(id = 29019:29023, startTime = c("2015-10-07T23:00:00.000Z", 
"2015-10-08T00:00:00.000Z", "2015-10-08T02:00:00.000Z", "2015-10-08T02:30:00.000Z", 
"2015-10-08T23:00:00.000Z")), row.names = c(NA, 5L), class = "data.frame")

> mydf
     id                startTime
1 29019 2015-10-07T23:00:00.000Z
2 29020 2015-10-08T00:00:00.000Z
3 29021 2015-10-08T02:00:00.000Z
4 29022 2015-10-08T02:30:00.000Z
5 29023 2015-10-08T23:00:00.000Z

> class(mydf$startTime)
"character"

我需要(a)将其转换为日期时间类型(不确定哪种类型最好,我知道R中有几种日期时间类型),然后(b)将时间调整5或8小时,因为显示的时间是格林尼治标准时间,所以我想要ET或PT时间。

非常感谢您提供有关此操作的帮助!

编辑:显然,这是ISO-8601日期表示的一部分。

1 个答案:

答案 0 :(得分:0)

我们可以使用ymd_hms中的lubridate,它将在字符串中选择T部分

library(tidyverse)
mydf %>% 
   mutate(startTime = ymd_hms(startTime))

或在format

中也指定字符串'T'
as.POSIXct(mydf$startTime, format = '%Y-%m-%dT%H:%M:%S')