如何将hhmmss.mm中的时间格式转换为R中的正常时间?

时间:2016-12-07 00:54:23

标签: r date time format

我有一个用hhmmss.mm编写的时间格式,例如从表导入的225014.09。 这是地震时间。我想把它变成R的22:50:14(:09?)。

我不知道该怎么做毫秒。应该是上面的方式。谁能帮我吗?我搜索过并搜索过,但找不到答案。

1 个答案:

答案 0 :(得分:1)

这有两个一般规则:

  1. 不要使用正则表达式来解析日期和时间
  2. 遵守规则1.
  3. 严肃地说,使用日期时间解析器,其中R 很多。但这里的一个关键是你有时间而不是日期,所以你还不能解析为 datetime

    所以做这样的事情:

    R> tstr <- "225014.09"
    R> dtstr <- paste("2026-01-01", tstr)  # which date does not matter
    R> pt <- anytime(dtstr)                # now it is parsed
    R> pt
    [1] "2026-01-01 22:50:14.08 CST"
    R> tstr <- "225014.09"
    R> dtstr <- paste("2016-01-01", tstr)  # which date does not matter
    R> pt <- anytime(dtstr)                # now it is parsed
    R> pt
    [1] "2016-01-01 22:50:14.08 CST"
    R> hhmmss <- format(pt, "%H:%M:%OS")
    R> hhmmss
    [1] "22:50:14.089999"
    R> 
    

    现在我们有首选的hh:mm:ss.ff,小数秒 - 我的默认值是你可以微调:

    R> options(digits.secs=2)
    R> hhmmss <- format(pt, "%H:%M:%OS")
    R> hhmmss
    [1] "22:50:14.08"
    R> 
    

    &#39; 09&#39;四舍五入到&#39; 08&#39;浮点数学是其中之一,并且无法通过解析或格式化方式进行更改 - 这是对基础表示的限制。