【问题标题】:Convert decimal day to HH:MM将十进制日期转换为 HH:MM
【发布时间】:2023-03-13 19:53:02
【问题描述】:

我有一个十进制数字向量,代表“十进制日”,即一天的分数。我想使用 R 将其转换为 HH:MM 格式。

例如,数字0.8541667 将对应于20:30。如何将数字转换为HH:MM 格式?

【问题讨论】:

    标签: r date datetime time format


    【解决方案1】:

    使用chron

    chron::times(0.8541667)
    #[1] 20:30:00
    

    【讨论】:

      【解决方案2】:

      试试这个:

      R> format(as.POSIXct(Sys.Date() + 0.8541667), "%H:%M", tz="UTC")
      [1] "20:30"
      R> 
      

      我们从一个日期开始——可以是任何日期,所以我们使用今天——然后添加您想要的小数日。

      然后我们将 Date 类型转换为 Datetime 对象。

      最后,我们格式化 Datetime 对象的小时和分钟部分,确保时区使用 UTC。

      【讨论】:

      • 或者:format(.POSIXct(86400*0.8541667, "UTC"), "%H:%M").
      【解决方案3】:

      data.table 的一个选项:

      > library(data.table)
      > structure(as.integer(0.4305556*60*60*24), class="ITime")
      [1] "10:20:00"
      

      我们将天分数转换为自午夜以来的秒数;强制为整数;并申请 ITime 课程。 (ITime 使用自午夜以来的整数存储秒数。)

      其他资源:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-15
        • 2018-05-10
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多