我试图找出如何的Sys.time()
输出格式化R.格式化Sys.time()的与时区使用输出中的R * format.Posix
例如:
t <- Sys.time()
print(t)
# [1] "2017-07-26 09:41:29 CEST"
这是正确的。
我想从t
制作一个字符串,由日期,小时和分钟以及时区组成。 我可以使用
format(t, format = "%F %R %Z")
# [1] "2017-07-26 09:41 CEST"
这是我所期望的。
但是,如果我明确设置时区,我很难理解输出。例如:
format(t, format = "%F %R %Z", tz = "Europe/Stockholm")
# [1] "2017-07-26 09:41 CEST"
产生我所期望的,但:
format(t, format = "%F %R %Z", tz = "CEST")
# [1] "2017-07-26 07:41 CEST"
我认为这是错误的,我本来期望的输出为"2017-07-26 09:41 CEST"
或"2017-07-26 09:41 Europe/Stockholm"
而且
format(t, format = "%F %R %Z", tz = "UTC+02:00")
# [1] "2017-07-26 05:41 UTC"
我发现哪怕是更加狡猾,因为我会预期输出到被"2017-07-26 10:41 UTC+02:00"
在回答我想知道两件事情:
- 为什么我的例子给他们给出的输出?
- 有什么办法让时区总是写成
"2017-07-26 10:41 UTC+02:00"
或"2017-07-26 10:41 Europe/Stockholm"
?
你认为你可以使用“随机”输入区自变量。你不能。坚持'命名'时区(如'欧洲/斯德哥尔摩')。未知/未知参数导致(静默)UTC设置。 –
但是为什么'format(Sys.time(),format =“%F%R%Z”,tz =“我不知道”)'return'“2017-07-26 15:50”'而不是' “2017-07-26 15:50 CEST”'? – Florian
谢谢,但有时在输出中包括时区的不一致行为,有时会让我感到困惑,有时会将其排除在外。例如,'format(Sys.time(),format =“%F%R%Z”,tz =“aaaaaa b”)'返回'“2017-07-26 15:55 aaaaaa”',虽然它是平等的垃圾,因为'我不知道'。不是我正在计划搞时区。 – Florian