如何在Bash中将DD-MM-YYYY HH:MM格式日期转换为DD/MM/YYYY HH:MM格式
Bash 日期格式转换实现方案
需求:将环境变量$INPUT_DATETIME中DD-MM-YYYY HH:MM格式的时间,转换为DD/MM/YYYY HH:MM格式后赋值给$OUTPUT_DATETIME。
方案1:原生Bash参数扩展(推荐,无外部依赖)
直接使用Bash内置的字符串全局替换能力,无需调用额外命令,执行效率最高:
# 转换逻辑 OUTPUT_DATETIME="${INPUT_DATETIME//-//}"
完整测试示例:
# 设置输入变量 export INPUT_DATETIME="01-10-2021 00:05" # 执行转换 OUTPUT_DATETIME="${INPUT_DATETIME//-//}" # 输出验证 echo $OUTPUT_DATETIME # 输出结果:01/10/2021 00:05
方案2:sed命令实现(兼容各类Shell环境)
如果使用的是不支持参数扩展的旧版Shell,可以用sed完成替换:
OUTPUT_DATETIME=$(echo "$INPUT_DATETIME" | sed 's/-/\//g')
注意事项
- 输入变量需严格遵循
DD-MM-YYYY HH:MM格式,确保横杠仅出现在日期分隔位 - 若需要让
$OUTPUT_DATETIME在子进程中也可用,赋值时添加export前缀即可:export OUTPUT_DATETIME="${INPUT_DATETIME//-//}"
内容的提问来源于stack exchange,提问作者Masquerade
相关产品推荐
相关产品推荐

