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

如何将R DataFrame中的日期转换为指定格式的字符串?

R实现日期转DD-MMM-YY格式的方案

你需要的格式可以通过R内置的format()函数直接实现,无需额外安装第三方依赖包,具体操作如下:

格式占位符说明

你要的07-JAN-21格式对应三个时间部分的占位符:

  • %d:两位数字的日期,不足10的日期自动补前导0
  • %b:英文月份缩写(默认输出首字母大写的Jan/Feb格式,转换为全大写即可匹配需求)
  • %y:两位数字的年份,取公元年的后两位

完整代码示例

基础R实现

# 你的示例DataFrame
df <- data.frame(dat = seq.Date(from = as.Date("2021-01-01"), to = as.Date("2021-01-07"), by = 1))

# 临时设置时间区域为英文,避免部分中文系统输出中文月份缩写
Sys.setlocale("LC_TIME", "en_US.UTF-8")

# 新增字符串类型的转换后字段
df$formatted_dat <- toupper(format(df$dat, "%d-%b-%y"))

# (可选)执行完成后改回原有系统locale,中文系统可执行下方注释代码
# Sys.setlocale("LC_TIME", "zh_CN.UTF-8")

tidyverse风格实现(dplyr)

如果你习惯用tidyverse生态,也可以用mutate批量处理:

library(dplyr)

df <- df %>%
  mutate(formatted_dat = toupper(format(dat, "%d-%b-%y")))

输出效果

转换后的数据样例如下:

datformatted_dat
2021-01-0101-JAN-21
2021-01-0202-JAN-21
2021-01-0303-JAN-21
2021-01-0404-JAN-21
2021-01-0505-JAN-21
2021-01-0606-JAN-21
2021-01-0707-JAN-21

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:18:01