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

时间:2019-10-09 09:18:42

标签: r timestamp posixct posixlt

请帮助我找到将“ 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

2 个答案:

答案 0 :(得分:1)

使用as.POSIXct,我们可以先将数据转换为POSIXct类,然后使用format以所需的格式显示输出。

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")

答案 1 :(得分:0)

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

> 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"