gpt4 book ai didi

r - 以 YYYY-MM-DDTHH-MM-SSZ 格式解析 ISO 8601 日期时间

转载 作者:行者123 更新时间:2023-12-02 00:14:50 25 4
gpt4 key购买 nike

我有一个带有时间戳的大型数据框,如下所示:

"2019-05-15T01:42:15.072Z"

它类似于 ISO 8601 combined date and time representation .

如何将此字符串解析为真正的日期时间格式?

数据中的字符(TZ)似乎使它变得困难。

最佳答案

您可以通过在as.POSIXct(或strptime)中指定格式来简单地解析时间戳

as.POSIXct("2019-05-15T01:42:15.072Z", format = "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC")
#[1] "2019-05-15 01:42:15 UTC"

解释:

%Y%m%d分别表示年(世纪)、月、日; %H%M%OS分别表示小时、分钟和秒(包括毫秒)。 TZ 只是添加到 format 字符串中,因为

Any character in the format string not part of a conversion specification is interpreted literally

有关不同的转换规范,请参阅 ?strptime

关于时区的评论

由于 Z 表示 UTC 时间,我们手动添加了 tz = "UTC"as.POSIXct(正如@所指出的)本尼·乔比根)。如果您希望将时间戳转换为本地(目标)时区,您可以这样做

# In timezone of target, i.e. convert from UTC to local
lubridate::with_tz(
as.POSIXct("2019-05-15T01:42:15.072Z", format = "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC"),
tz = Sys.timezone())
# [1] "2019-05-15 11:42:15 AEST"

(显然,输出取决于您本地的时区,可能与我得到的不同。)

关于r - 以 YYYY-MM-DDTHH-MM-SSZ 格式解析 ISO 8601 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57355948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com