如何解决解析字符串/ ISO 8601日期
我正在寻找一种将多种字符串格式解析为日期/日期时间的方法。对于我的目的,as_datetime()
函数在下面的前3个中效果很好,但在第四个中却不能。有什么建议吗?
library(lubridate)
as_datetime("20200603",tz = "America/New_York")
as_datetime("20200603231413",tz = "America/New_York")
as_datetime("20200603231413-0400",tz = "America/New_York")
as_datetime("20200528203000+0000",tz = "America/New_York")
> as_datetime("20200603",tz = "America/New_York")
[1] "2020-06-03 EDT"
> as_datetime("20200603231413",tz = "America/New_York")
[1] "2020-06-03 23:14:13 EDT"
> as_datetime("20200603231413-0400",tz = "America/New_York")
Date in ISO8601 format; converting timezone from UTC to "America/New_York".
[1] "2020-06-03 23:14:13 EDT"
> as_datetime("20200528203000+0000",tz = "America/New_York")
[1] NA
Warning message:
All formats failed to parse. No formats found.
> as_datetime("20200528203116+0000",tz = "America/New_York")
[1] NA
Warning message:
All formats failed to parse. No formats found.
解决方法
您可以使用format=
提供更多格式,在这种情况下,请添加%z
定义为的?strptime
'%z' Signed offset in hours and minutes from UTC,so '-0800' is 8
hours behind UTC. Values up to '+1400' are accepted.
(Standard only for output. For input R currently supports it
on all platforms.)
library(lubridate)
as_datetime("20200603231413-0400",format = "%Y%m%d%H%M%S%z",tz = "America/New_York")
# [1] "2020-06-03 23:14:13 EDT"
as_datetime("20200628203000+0000",tz = "America/New_York")
# [1] "2020-06-28 16:30:00 EDT"
as_datetime("20200528203116+0000",tz = "America/New_York")
# [1] "2020-05-28 16:31:16 EDT"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。