出于记录目的,R 脚本如何获取 UTC 时区中的当前日期和时间,作为以下格式的 ISO 8601 字符串:
2015-12-31T14:26:56.600374+00:00
as.POSIXlt
似乎是解决方案,并且文档声称它接受格式参数,但我无法使其工作(在 R 版本 3.1.3 上):
> as.POSIXlt(Sys.time(), "UTC", "%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 14:37:58 UTC"
> as.POSIXlt(Sys.time(), tz="UTC", format="%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 14:38:02 UTC"
> as.POSIXct(Sys.time(), tz="UTC", format="%Y-%m-%dT%H:%M:%S")
[1] "2015-04-08 11:38:22 BRT"
as.POSIXlt
(and as.POSIXct
) 用于输入。使用任一format
or strftime
用于输出。有关格式字符串的详细信息,请参阅 ?strftime:
tm <- as.POSIXlt(Sys.time(), "UTC")
strftime(tm , "%Y-%m-%dT%H:%M:%S%z")
#[1] "2015-04-08T15:11:22+0000"
第三个参数为as.POSIXlt
, format
, 当第一个参数是需要解析的类似字符串的值时使用。由于我们传入的日期值来自Sys.time
, the format
被忽略。
我不认为时区输出中的冒号是 ISO 8601 格式的要求,但在这一点上我可能是错的。帮助页面显示该标准是 POSIX 1003.1。如果需要,可能需要用正则表达式替换来放入冒号。
看完之后http://dotat.at/tmp/ISO_8601-2004_E.pdf http://dotat.at/tmp/ISO_8601-2004_E.pdf我看到“基本”格式”时区表示中没有冒号,但“扩展格式”中有一个冒号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)