R / Salesforce 日期时间集成
R / Salesforce Datetime integration
我对 R 中 ISO 8601
日期时间的特定格式有疑问 - 示例:
2016-12-28T13:00:56.000Z
2016-12-28T13:03:10.000Z
2016-12-28T13:08:26.000Z
2016-12-28T13:13:00.000Z
2016-12-28T13:34:49.000Z
2016-12-28T13:42:44.000Z
2016-12-28T13:51:43.000Z
2016-12-28T13:52:30.000Z
2016-12-28T13:53:03.000Z
到目前为止,我还没有成功使用 lubridate
进行解析,我正在考虑使用 regex
来先分解它并删除 T/Z。或者我可以用 strptime
做什么?这也可能是一种选择。理想情况下,这将为 list/vector 中的所有实例进行管道传输,例如:
df %>%
select(datetime) %>%
sapply(as.character) %>%
parse_date_time('YmdHMS') -> df$datetime
这里的实际问题是我的对象类型最初是一个列表 - 在 unlist
之后,几种不同的解析方法立即起作用。始终密切关注您的对象类型!
只需将其粘贴到 anytime()
中,它就可以正确使用 多种 格式(无需指定它们)并且当然可以与 ISO 8601 一起使用:
R> tvec <- read.csv(text="2016-12-28T13:00:56.000Z
2016-12-28T13:03:10.000Z
2016-12-28T13:08:26.000Z
2016-12-28T13:13:00.000Z
2016-12-28T13:34:49.000Z
2016-12-28T13:42:44.000Z
2016-12-28T13:51:43.000Z
2016-12-28T13:52:30.000Z
2016-12-28T13:53:03.000Z", header=FALSE)[,1]
R>
刚刚分配给您的数据(以 not-too-reproducible 格式显示)。那么:
R> library(anytime) ## load package, and we're basically done
R> anytime(tvec)
[1] "2016-12-28 13:00:56 CST" "2016-12-28 13:03:10 CST" "2016-12-28 13:08:26 CST"
[4] "2016-12-28 13:13:00 CST" "2016-12-28 13:34:49 CST" "2016-12-28 13:42:44 CST"
[7] "2016-12-28 13:51:43 CST" "2016-12-28 13:52:30 CST" "2016-12-28 13:53:03 CST"
R>
对于基础 R 解决方案:
> as.POSIXct("2016-12-28T13:00:56.000Z", format = "%Y-%m-%dT%H:%M:%S.000Z")
[1] "2016-12-28 13:00:56 CET"
我对 R 中 ISO 8601
日期时间的特定格式有疑问 - 示例:
2016-12-28T13:00:56.000Z
2016-12-28T13:03:10.000Z
2016-12-28T13:08:26.000Z
2016-12-28T13:13:00.000Z
2016-12-28T13:34:49.000Z
2016-12-28T13:42:44.000Z
2016-12-28T13:51:43.000Z
2016-12-28T13:52:30.000Z
2016-12-28T13:53:03.000Z
到目前为止,我还没有成功使用 lubridate
进行解析,我正在考虑使用 regex
来先分解它并删除 T/Z。或者我可以用 strptime
做什么?这也可能是一种选择。理想情况下,这将为 list/vector 中的所有实例进行管道传输,例如:
df %>%
select(datetime) %>%
sapply(as.character) %>%
parse_date_time('YmdHMS') -> df$datetime
这里的实际问题是我的对象类型最初是一个列表 - 在 unlist
之后,几种不同的解析方法立即起作用。始终密切关注您的对象类型!
只需将其粘贴到 anytime()
中,它就可以正确使用 多种 格式(无需指定它们)并且当然可以与 ISO 8601 一起使用:
R> tvec <- read.csv(text="2016-12-28T13:00:56.000Z
2016-12-28T13:03:10.000Z
2016-12-28T13:08:26.000Z
2016-12-28T13:13:00.000Z
2016-12-28T13:34:49.000Z
2016-12-28T13:42:44.000Z
2016-12-28T13:51:43.000Z
2016-12-28T13:52:30.000Z
2016-12-28T13:53:03.000Z", header=FALSE)[,1]
R>
刚刚分配给您的数据(以 not-too-reproducible 格式显示)。那么:
R> library(anytime) ## load package, and we're basically done
R> anytime(tvec)
[1] "2016-12-28 13:00:56 CST" "2016-12-28 13:03:10 CST" "2016-12-28 13:08:26 CST"
[4] "2016-12-28 13:13:00 CST" "2016-12-28 13:34:49 CST" "2016-12-28 13:42:44 CST"
[7] "2016-12-28 13:51:43 CST" "2016-12-28 13:52:30 CST" "2016-12-28 13:53:03 CST"
R>
对于基础 R 解决方案:
> as.POSIXct("2016-12-28T13:00:56.000Z", format = "%Y-%m-%dT%H:%M:%S.000Z")
[1] "2016-12-28 13:00:56 CET"