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

R语言如何修改日期时间格式 移除秒数转为dd-mm-yyyy hh:mm格式

R中POSIXct日期时间转dd-mm-yyyy hh:mm格式方法

你提供的数据集里Collectie_DatumTijd列是R原生的POSIXct日期时间类型(UTC时区),并非普通字符串,可按实际需求选择以下方案完成转换:


方案1:基础R实现,无需加载额外包

场景1:仅需输出/展示为目标格式字符串

直接用format()函数指定输出格式即可,转换结果为字符串类型:

# 替换df为你的数据集实际名称
df$Collectie_DatumTijd_new <- format(
  df$Collectie_DatumTijd,
  format = "%d-%m-%Y %H:%M",
  tz = "UTC" # 可按需替换为你需要的时区,比如"Asia/Shanghai"为上海时区
)

用到的格式符说明:

  • %d:两位数字的日期(01-31)
  • %m:两位数字的月份(01-12)
  • %Y:四位数字的年份
  • %H:24小时制小时(00-23)
  • %M:分钟(00-59)

场景2:需要保留日期时间类型,截断秒数

如果后续还要做时间计算、排序等操作,不要转成字符串,直接把时间截断到分钟级(秒数自动置0),保留POSIXct类型:

df$Collectie_DatumTijd <- trunc(df$Collectie_DatumTijd, units = "mins")
# 后续需要输出展示时,再调用上面的format方法转成目标字符串即可

方案2:用lubridate包(适合tidyverse/dplyr工作流)

如果平时用dplyr处理tibble数据,用lubridate处理时间逻辑更简洁:

library(dplyr)
library(lubridate)

df <- df %>%
  mutate(
    # 截断到分钟级,保留POSIXct时间类型
    Collectie_DatumTijd = floor_date(Collectie_DatumTijd, unit = "minute"),
    # 生成目标格式的字符串列
    Collectie_DatumTijd_formatted = format(Collectie_DatumTijd, "%d-%m-%Y %H:%M")
  )

样例数据验证

你提供的样例数据中时间戳1626784620对应UTC时间为2021-07-20 12:37:00,转换后得到的目标格式结果为20-07-2021 12:37,符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:12:43