将字符串转换为R日期时间对象的正确格式

时间:2018-06-11 12:45:55

标签: r datetime pattern-mining

我有一个系统生成的日期和时间格式。它看起来像这样,“2017-04-12-02.29.25.000000”。我想将此格式转换为标准格式,以便我的系统可以读取此格式,稍后我可以将其转换为分钟。有人请帮助在R中提供代码。

1 个答案:

答案 0 :(得分:1)

如果您不确定格式,guess_formats中的lubridate功能非常有用:

w <- "2017-04-12-02.29.25.000000"
> lubridate::guess_formats(w, orders = 'YmdHMS')
              YOmdHMS                YmdHMS 
"%Y-%Om-%d-%H.%M.%OS"  "%Y-%m-%d-%H.%M.%OS"

orders是您希望函数调查的格式,它会输出正确的表示形式。如果字符串中的第二个条目是您可以尝试YdmHMS的那一天。

上例中输出中两种格式的差异基于第二个条目的格式(始终带有前导零或不带前导零)。尝试第一种格式给出:

> as.POSIXct(w, format = "%Y-%Om-%d-%H.%M.%OS")
[1] "2017-04-12 02:29:25 EDT"

as.POSIXct来电中,您可以根据需要指定时区tz