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

如何在Bash中通过for循环将日期列表转换为yyyymmdd格式

Bash批量转换日期为yyyymmdd格式

单个日期转换

如果你需要把单个日期字符串(比如Tue Apr 9 16:19:48 IST 2019)转换成yyyymmdd(比如20190409)格式,直接执行这条命令即可:

date -d " Tue Apr 9 16:19:48 IST 2019 " "+%Y%m%d"

批量转换日期列表

如果你的日期都存在一个名为create_time的文件里(每行一个日期字符串),可以用Bash的for循环批量处理,这里有两种适配不同系统的脚本方案:

方案1:适用于Linux系统

Linux下的date命令支持-d参数解析任意日期字符串,脚本如下:

for i in $(cat create_time); do date -d " $i " "+%Y%m%d"; done

小提示:如果你的日期字符串包含空格(比如示例里的格式),用$(cat create_time)可能会按空格拆分字段,导致每个部分被单独处理。这种情况下更推荐用while read循环来避免拆分问题:

while read -r date_str; do date -d "$date_str" "+%Y%m%d"; done < create_time

方案2:适用于BSD/macOS系统

BSD系(比如macOS)的date命令参数逻辑不同,需要用-j(不修改系统时间)和-f(指定输入格式),脚本如下:

for i in $(cat create_time); do date -j -f "%a %b %d %T %Z %Y" "$i" "+%Y%m%d"; done

注意:-f后面的格式串必须和你输入的日期格式完全匹配,示例里的%a %b %d %T %Z %Y刚好对应Tue Apr 9 16:19:48 IST 2019这种格式。如果你的日期格式有差异,需要调整格式串的参数。

不管用哪种方案,最终输出的日期都会是20190409这种标准的yyyymmdd格式。

内容的提问来源于stack exchange,提问作者Rahul Kumar Jaiswal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:59:30