将 POSIX 对象转换为字符串时保留时区信息

Keep time zone information when converting POSIX object to string

我正在尝试使用

将 POSIX 对象转换为 R 中的字符串

as.character(Sys.time()) 其中 returns "2021-09-28 08:38:13"

但是,如果我 运行 Sys.time() 我得到 "2021-09-28 08:38:13 CEST"

如何将时区信息也转换为字符串?

使用 strftime(.

strftime(Sys.time(), '%c')
# [1] "Tue 28 Sep 2021 08:43:06 CEST"

strftime(Sys.time(), '%F %X %Z')
# [1] "2021-09-28 08:45:42 CEST"

您可以使用 format'%Z' 来表示时区。

format(Sys.time(), '%Y-%m-%d %T %Z')

使用选项 usetz = TRUE

as.character(Sys.time(), usetz = TRUE)

同样的事情可以用 formatusetz = TRUE:

来完成
format(Sys.time(), usetz = TRUE)

输出:

2021-09-28 08:38:13 CEST

时间安排:

a <- proc.time()
for (i in 1:100000)
{
format(Sys.time(), usetz = TRUE)
}
print(proc.time() - a)
b <- proc.time()
for (i in 1:100000)
{
as.character(Sys.time(), usetz = TRUE)
}
print(proc.time() - b)

format(我的)比 as.character(Park 的回答)快。输出是:

   user  system elapsed 
 11.040   0.520  11.563 
   user  system elapsed 
 11.930   0.290  12.229 

第二个是朴的。