在R中将本地时间戳转换为RFC 3339格式

时间:2018-05-12 16:02:51

标签: r datetime

我使用Sys.time()提取当前日期时间,然后获得"2018-05-12 11:52:21 EDT"。考虑到本地时区不是UTC,如何将其转换为RFC 3339格式的字符串?

注意:此日期的RFC 3339格式为:2018-05-12T15:52:21Z

2 个答案:

答案 0 :(得分:1)

这是我能想到的最简单的事情:

format(lubridate::as_datetime(Sys.time()), "%Y-%m-%dT%H:%M:%SZ")

伪代码:

  1. 使用 lubridate 包中的as_datetime()函数,默认情况下,使用UTC作为时区将时间戳转换为POSIXct日期时间表示
  2. 使用format()
  3. 格式化时间

答案 1 :(得分:0)

只需添加一下,如果您想使用冒号来补偿,您可以使用以下代码:

.dt <- format(lubridate::now(), "%Y-%m-%dT%H:%M:%S%z")
paste0(stringr::str_sub(.dt, 1, -3),":", stringr::str_sub(.dt, -2, nchar(.dt)))