如何用Shell脚本格式化日期字符串?日期转换命令失效求助
解决date命令转换日期格式的问题
你的原命令存在两个关键错误:
-d后的日期字符串与格式参数+...之间缺少空格,导致Shell无法正确解析参数- 目标格式需要带斜杠分隔符,但你使用的是无分隔的
%Y%m%d
基础转换(匹配原日期的4月)
如果是要将原日期转换为2024/04/27格式,正确命令如下:
date -d "Sat Apr 27 11:33:57 CST 2024" +"%Y/%m/%d"
若需将月份改为9月(如业务需求)
如果确实需要输出2024/09/27(原日期为4月,此处属于月份替换),可以拆分提取后拼接:
# 提取年份和日部分 year=$(date -d "Sat Apr 27 11:33:57 CST 2024" +"%Y") day=$(date -d "Sat Apr 27 11:33:57 CST 2024" +"%d") # 拼接成目标格式 echo "${year}/09/${day}"
命令说明
-d:指定要解析的输入日期字符串,必须与后续格式参数用空格分隔%Y:代表4位年份,%m:代表2位月份,%d:代表2位日期,通过/分隔即可得到目标格式
内容的提问来源于stack exchange,提问作者user1960970
相关产品推荐
相关产品推荐

