如何将时间戳字符串“2014-07-20T05:11:49.988Z”转换为 R 中的 POSIXt?
How to convert time stamp string "2014-07-20T05:11:49.988Z" into POSIXt in R?
如何将时间戳字符串“2014-07-20T05:11:49.988Z”转换为R中的POSIXt?
我想知道秒为什么用3个分位数来表示?在时间戳末尾附加 'Z' 是什么意思?
谁能知道这个字符串如何在 R
中转换成时间
"Z" 是 shorthand for UTC。您可以使用
在 base R 中解析它
x <- as.POSIXct("2014-07-20T05:11:49.998Z",
format="%Y-%m-%dT%H:%M:%OSZ", tz="GMT")
请注意,您通常使用 POSIXct 或 POSIXlt 而不是直接使用 POSIXt(两者都以 POSIXt 作为基础 class)
lubridate
包有非常健壮的解析器,我倾向于在基础 R
中手动指定 format
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
(t <- ymd_hms("2014-07-20T05:11:49.998Z"))
#> [1] "2014-07-20 05:11:49 UTC"
由 reprex package (v0.2.1)
于 2019-03-11 创建
确保未打印的毫秒数也不会丢失:
second(t)
#> [1] 49.998
如何将时间戳字符串“2014-07-20T05:11:49.988Z”转换为R中的POSIXt?
我想知道秒为什么用3个分位数来表示?在时间戳末尾附加 'Z' 是什么意思? 谁能知道这个字符串如何在 R
中转换成时间"Z" 是 shorthand for UTC。您可以使用
在 base R 中解析它x <- as.POSIXct("2014-07-20T05:11:49.998Z",
format="%Y-%m-%dT%H:%M:%OSZ", tz="GMT")
请注意,您通常使用 POSIXct 或 POSIXlt 而不是直接使用 POSIXt(两者都以 POSIXt 作为基础 class)
lubridate
包有非常健壮的解析器,我倾向于在基础 R
format
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
(t <- ymd_hms("2014-07-20T05:11:49.998Z"))
#> [1] "2014-07-20 05:11:49 UTC"
由 reprex package (v0.2.1)
于 2019-03-11 创建确保未打印的毫秒数也不会丢失:
second(t)
#> [1] 49.998