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

R语言如何将datetime类型列转换为仅保留HH:MM:SS的time格式

R语言提取datetime列时间部分的实现方法

以下两种是实际开发中最常用的实现方案:

方法1:基础R实现(无需安装额外包)

如果你的目标列已经是POSIXct/POSIXlt类型的datetime格式,直接调用format()函数即可:

# 构造示例数据
df <- data.frame(
  datetime = as.POSIXct(c("2021-05-31 13:25:10", "2021-06-01 08:05:22", "2021-06-02 22:19:47"))
)

# 提取HH:MM:SS格式的时间部分,默认返回字符类型
df$time <- format(df$datetime, "%H:%M:%S")

参数说明:%H对应24小时制小时,%M对应分钟,%S对应秒。如果需要12小时制格式,可以把格式参数改为%I:%M:%S %p,输出样式为01:25:10 PM。

方法2:tidyverse生态实现(返回可计算的时间类型)

如果后续需要对时间列做排序、差值计算等操作,推荐用lubridate和hms包的组合,返回标准hms时间类型而非纯字符:

# 加载依赖包
library(dplyr)
library(lubridate)
library(hms)

# 管道操作生成时间列
df <- df %>%
  mutate(time = as_hms(datetime))

前置检查说明

如果你的列目前是字符串格式而非datetime类型,需要先做格式转换再提取时间:

  • 基础R转换:df$datetime <- as.POSIXct(df$datetime, format = "%Y-%m-%d %H:%M:%S")
  • lubridate转换:df$datetime <- ymd_hms(df$datetime)

内容的提问来源于stack exchange,提问作者pancaldi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 11:54:07