如何生成包含当日日期与15分钟时间间隔的CSV文件名列表
嘿,这个需求在R里其实很好实现,我给你两种靠谱的方案,你可以按需选择:
方案1:使用R基础包实现
不需要额外安装包,用基础函数就能搞定:
# 获取当日日期,格式化为YYYYMMDD格式的字符串 current_date <- format(Sys.Date(), "%Y%m%d") # 生成从当日00:00到23:45、间隔15分钟的时间序列 time_seq <- seq( from = as.POSIXct(paste(current_date, "00:00:00")), # 起始时间 to = as.POSIXct(paste(current_date, "23:45:00")), # 结束时间 by = "15 mins" # 时间间隔 ) # 拼接生成符合要求的文件名 file_names <- paste0("data_", format(time_seq, "%Y%m%d%H%M%S"), ".csv") # 可以用head(file_names)查看前几个结果,确认格式是否正确
这段代码的逻辑很清晰:
- 先用
format(Sys.Date(), "%Y%m%d")把当日日期转成你需要的纯数字格式; - 再用
seq()生成15分钟间隔的完整时间序列,覆盖全天的每个15分钟节点; - 最后通过
format()把时间序列转成YYYYMMDDHHMMSS的格式,和前缀data_、后缀.csv拼接成最终文件名。
方案2:使用lubridate包简化代码
如果你平时经常处理日期时间,推荐用lubridate包,代码会更简洁易读:
# 如果没安装过lubridate,先运行install.packages("lubridate") library(lubridate) # 获取当日日期,lubridate的today()函数更直观 current_date <- today() # 生成时间序列,ymd_hms()可以直接解析日期时间字符串 time_seq <- seq( ymd_hms(paste(current_date, "00:00:00")), ymd_hms(paste(current_date, "23:45:00")), by = "15 mins" ) # 生成文件名,和基础包的步骤一致 file_names <- paste0("data_", format(time_seq, "%Y%m%d%H%M%S"), ".csv")
小提示
如果需要生成指定日期的文件名,只需要把Sys.Date()或today()换成你需要的日期即可,比如:
# 生成2021年8月27日的文件名列表 target_date <- as.Date("2021-08-27") current_date <- format(target_date, "%Y%m%d")
内容的提问来源于stack exchange,提问作者codedancer
相关产品推荐
相关产品推荐

