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
相关产品推荐
相关产品推荐

