如何将字符串“2019-10-09T06:07:05.888Z”转换为日历日期和时间

How to convert string "2019-10-09T06:07:05.888Z" as calendar date and time

请帮助我找到将“2019-10-09T06:07:05.888Z”转换为日历时间戳的解决方案。我尝试了以下方法,

> format(as.POSIXlt("2019-10-09T06:07:05.888Z"), "%Y-%m-%d %H:%M:%OS3")
[1] "2019-10-09 00:00:00.000"

> as.POSIXct("2019-10-09T06:07:05.888Z", format="%Y-%m-%d %H:%M:%OS")
[1] NA

as.POSIXct,我们可以先把数据转成POSIXctclass,然后用format把输出结果显示成我们想要的格式[=16] =]

temp <- as.POSIXct("2019-10-09T06:07:05.888Z",format = "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
format(temp, "%Y-%m-%d %H:%M:%OS3")
#[1] "2019-10-09 06:07:05.888"

lubridate

format(lubridate::ymd_hms("2019-10-09T06:07:05.888Z"), "%Y-%m-%d %H:%M:%OS3")

只需在 as.POSIXct() 上方添加 options(digits.secs = 3) 即可获得准确的日历格式。

> options(digits.secs = 3)
> as.POSIXct("2019-10-09T06:07:05.888Z",format = "%Y-%m-%dT%H:%M:%OS", tz = "UTC")
[1] "2019-10-09 06:07:05.888 UTC"