我正在从体育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日期表示的一部分。
答案 0 :(得分:0)
我们可以使用ymd_hms
中的lubridate
,它将在字符串中选择T
部分
library(tidyverse)
mydf %>%
mutate(startTime = ymd_hms(startTime))
或在format
as.POSIXct(mydf$startTime, format = '%Y-%m-%dT%H:%M:%S')