【问题标题】:Is it possible to print a duration with HH:MM:SS format?是否可以使用 HH:MM:SS 格式打印持续时间?
【发布时间】:2017-03-02 13:47:51
【问题描述】:
t1<-as.POSIXct("2017-03-02 11:58:20")
t2<-as.POSIXct("2017-03-02 12:00:05")
print(lubridate::as.duration(lubridate::interval(t1,t2)))

[1]“105 秒(~1.75 分钟)”

是否可以用 HH:MM:SS 表示持续时间?所以在这种情况下,它将是:

00:01:45

【问题讨论】:

    标签: r datetime lubridate


    【解决方案1】:

    您可以将seconds_to_period 中的lubridatesprintf 一起使用

    library(lubridate)
    td <- seconds_to_period(difftime(t2, t1, units = "secs"))
    sprintf('%02d:%02d:%02d', td@hour, minute(td), second(td))
    #[1] "00:01:45"
    

    这是基于之前的讨论 - Converting seconds to days: hours:minutes:seconds in r?

    【讨论】:

      【解决方案2】:

      保持润滑心态:

      t1<-as.POSIXct("2017-03-02 11:58:20")
      t2<-as.POSIXct("2017-03-02 12:00:05")
      dur <- lubridate::as.period(lubridate::as.duration(lubridate::interval(t1,t2)))
      sprintf('%02d %02d:%02d:%02d', day(dur), hour(dur), minute(dur), second(dur))
      

      通常,周期类可能不准确(闰日等),但由于它首先通过持续时间,它应该是正确的。

      【讨论】:

        猜你喜欢
        • 2019-07-13
        • 2018-02-06
        • 2010-12-13
        • 1970-01-01
        • 2017-11-12
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-11-23
        相关资源
        最近更新 更多