从系统时间中提取时间

时间:2018-07-03 03:13:55

标签: r time

我有一个问题,我认为这是由于我对Sys.time()输出的性质缺乏了解。我想用文件名中的时间戳保存R的输出。我尝试使用%>%gsub(),但没有得到预期的结果。

当我运行Sys.time时,将输出:

Sys.time()
[1] "2018-07-02 21:57:27 CDT"

当我运行代码时,我认为该代码可以工作:

> Sys.time() %>% gsub("^[^\\s]+\\s([^\\s]+)\\s[^\\s]+$", "\\1", .)
[1] "2018-07-02 21:57:27"

有趣的是,这段代码产生了我想要的值:

> Sys.time() %>% gsub("^[^\\s]+\\s", "", .)
[1] "21:57:27"

有什么想法我在做什么错吗?

1 个答案:

答案 0 :(得分:2)

@akrun,谢谢,行得通!

我也意识到了这个问题。即使Sys.time()打印"2018-07-02 21:57:27 CDT"只是格式化。 "2018-07-02 22:16:45"是实际的字符串。

> as.character(Sys.time())
[1] "2018-07-02 22:16:45"

这也解释了为什么我的第二个gsub()代码有效的原因,因为Sys.time()输出中只有一个空格字符。

> Sys.time() %>% gsub("^[^\\s]+\\s", "", .)
[1] "21:57:27"