比较 bash 中的 2 个日期
Comparing 2 dates in bash
所以我试图比较 bash 中的 2 个日期,但我的日期包含 Jan 或 Monday 等字符。
我可以直接比较它们还是我需要像这样“20201607”(以及我该怎么做)来格式化它们然后它们在数字上比较它们?
谢谢
例如:
today=$(date)
day='21 Jan 2021'
if [ $today < $day ]
echo "$day"
基本上我的功能将 return 未发生 atm 的日期。
通过指定 %s 和日期等,使用自纪元(1970-01-01 UTC)以来的秒数:
day='21 Jan 2021'
if [[ "$(date +%s)" -lt "$(date -d "$day" +%s)" ]];
then
echo "$day";
fi
Zenity 可以帮助您:告诉 zenity 您想要什么输出日期格式:
while ! date=$(zenity --calendar --date-format '%Y%m%d'); do
# ...........................^^^^^^^^^^^^^^^^^^^^^^
echo "Don't cancel the zenity window, select a day"
done
# bash v4.2+ can to date formatting
today=$(printf '%(%Y%m%d)T' -1)
if [ "$date" -gt "$today" ]; then
echo "you entered a future date"
fi
所以我试图比较 bash 中的 2 个日期,但我的日期包含 Jan 或 Monday 等字符。 我可以直接比较它们还是我需要像这样“20201607”(以及我该怎么做)来格式化它们然后它们在数字上比较它们? 谢谢 例如:
today=$(date)
day='21 Jan 2021'
if [ $today < $day ]
echo "$day"
基本上我的功能将 return 未发生 atm 的日期。
通过指定 %s 和日期等,使用自纪元(1970-01-01 UTC)以来的秒数:
day='21 Jan 2021'
if [[ "$(date +%s)" -lt "$(date -d "$day" +%s)" ]];
then
echo "$day";
fi
Zenity 可以帮助您:告诉 zenity 您想要什么输出日期格式:
while ! date=$(zenity --calendar --date-format '%Y%m%d'); do
# ...........................^^^^^^^^^^^^^^^^^^^^^^
echo "Don't cancel the zenity window, select a day"
done
# bash v4.2+ can to date formatting
today=$(printf '%(%Y%m%d)T' -1)
if [ "$date" -gt "$today" ]; then
echo "you entered a future date"
fi