【发布时间】:2023-03-13 19:53:02
【问题描述】:
我有一个十进制数字向量,代表“十进制日”,即一天的分数。我想使用 R 将其转换为 HH:MM 格式。
例如,数字0.8541667 将对应于20:30。如何将数字转换为HH:MM 格式?
【问题讨论】:
标签: r date datetime time format
我有一个十进制数字向量,代表“十进制日”,即一天的分数。我想使用 R 将其转换为 HH:MM 格式。
例如,数字0.8541667 将对应于20:30。如何将数字转换为HH:MM 格式?
【问题讨论】:
标签: r date datetime time format
使用chron:
chron::times(0.8541667)
#[1] 20:30:00
【讨论】:
试试这个:
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").
data.table 的一个选项:
> library(data.table)
> structure(as.integer(0.4305556*60*60*24), class="ITime")
[1] "10:20:00"
我们将天分数转换为自午夜以来的秒数;强制为整数;并申请 ITime 课程。 (ITime 使用自午夜以来的整数存储秒数。)
其他资源:
【讨论】: