You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符型时分转换为时间类型并仅保留时分秒(去除自动日期)

解决方法

strptime()返回的是POSIXlt类型对象,本身就包含日期信息,若要仅保留时分秒的显示或存储纯时间格式,可参考以下几种方案:

方案1:转为字符型(仅用于展示)

如果不需要后续时间计算,只是要显示成HH:MM:SS格式,可将转换后的时间对象重新格式化为字符串:

mdp$time <- format(strptime(mdp$time, '%H:%M'), '%H:%M:%S')

处理后time字段变为字符型,内容仅保留时分秒,无日期信息。

方案2:用hms包存储纯时间类型

若需要保留时间的可计算性,同时只存储时分秒,推荐使用hms包的专门类型:

# 首次使用需安装包
install.packages("hms")
library(hms)

# 简洁转换方式
mdp$time <- as_hms(as.POSIXct(mdp$time, format = '%H:%M'))

该类型对象在显示时仅展示HH:MM:SS,且支持时间加减等运算。

方案3:用chron包的times类型

也可借助chron包的times()函数实现纯时间存储:

install.packages("chron")
library(chron)

mdp$time <- times(strptime(mdp$time, '%H:%M')$hour/24 + 
                   strptime(mdp$time, '%H:%M')$min/(24*60) + 
                   strptime(mdp$time, '%H:%M')$sec/(24*60*60))

此类型同样仅显示时分秒,且支持时间相关运算。


内容的提问来源于stack exchange,提问作者Getts the Traveller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:19:58