如何让 minute() 变为 Return 00 而不是 0?

How Can I Get minute() to Return 00 instead of 0?

我正在研究从 R 中的 dttm 对象中提取时间数据并将其格式化为 HH:MM。我已经能够使用

完成此操作
paste(hour(datetime), minute(datetime), sep=':')

有一个例外:当分钟数小于 10 时。当我这样做时,分钟函数只是 returns 没有前导 0 的分钟数。例如:

library(lubridate)

datetime = ymd_hms('2018-11-18 14:00:00')

minute(datetime)

这给出了

的输出
> minute(datetime)
[1] 0

我相信有使用 hms 或其他 packages/functions 或通过构建 if-then 的选项,但我想尽量减少依赖性和复杂性并坚持使用 lubridate 的细节来实现我的目标 if完全有可能。

(注意:我意识到 hour() 也存在同样的问题,但我使用的所有时间都是 PM,所以在我的情况下并不那么紧迫)。

使用 format 您可以在指定后获得自己的自定义日期格式 -

> format(datetime, "%M")
[1] "00"

谢谢@Ronak -

> sprintf("%02d", minute(datetime))
[1] "00"

你为什么要做这些额外的工作?只需直接从您的日期时间 (POSIXct) 对象获取时间。

strftime(datetime, "%H:%M")
# [1] "14:00"