📅  最后修改于: 2023-12-03 15:20:07.715000             🧑  作者: Mango
在 shell 脚本中,经常需要对日期时间进行计算和格式化。本文将介绍如何在 shell 中进行日期时间计算和格式化。
date 命令用于获取系统时间。
date
示例输出:
Thu Nov 5 17:38:52 CST 2020
可以使用 date 命令的格式化选项,将时间格式化输出。例如,输出年、月、日:
date +%Y-%m-%d
示例输出:
2020-11-05
更多 date 命令的格式化选项,可以参考 date 命令的帮助文档。
使用 date 命令可以获取系统时间,也可以将其存储到变量中,以便后续使用。
current_time=$(date +%Y-%m-%d_%H:%M:%S)
echo $current_time
示例输出:
2020-11-05_17:38:52
在 shell 中,可以通过 date 命令和其他工具对日期时间进行计算。
使用 date 命令可以计算两个日期之间的时间差。以下是一个计算两个时间点之间的秒数的示例:
start_time=$(date +%s)
sleep 3
end_time=$(date +%s)
echo $((end_time - start_time))
示例输出:
3
使用 date 和其他工具如 bc 可以计算两个日期之间的天数。
以下是计算两个日期之间间隔的天数的示例:
start_date="2020-11-01"
end_date="2020-11-05"
start_seconds=$(date -d "$start_date" +%s)
end_seconds=$(date -d "$end_date" +%s)
diff_seconds=$((end_seconds - start_seconds))
diff_days=$(echo "scale=0;$diff_seconds/60/60/24" | bc)
echo $diff_days
示例输出:
4
使用 date 命令的格式化选项可以实现对时间格式的控制。
以下是将当前时间格式化输出为年月日、时分秒、毫秒等的示例:
# 年月日
date +%Y-%m-%d
# 时分秒
date +%H:%M:%S
# 毫秒
date +%N
示例输出:
2020-11-05
17:38:52
277000000
可以将多个格式化选项组合使用。以下是将当前时间格式化输出为年月日时分秒的示例:
date "+%Y-%m-%d %H:%M:%S"
示例输出:
2020-11-05 17:38:52
在 shell 脚本中,我们可以使用 date 命令和其他工具对日期时间进行计算和格式化。我们可以计算时间差、日期差等,也可以将时间格式化输出为我们想要的格式。