bash - shell编程 - shell语法




YYYY-MM-DD格式的日期在shell脚本中 (6)

我尝试在我的bash shell脚本中使用$(date) ,但是我希望YYYY-MM-DD格式的日期。 我如何得到这个?


你可以做这样的事情:

$ date +'%Y-%m-%d'

使用最近的Bash(版本≥4.2),您可以使用格式修改%(strftime_format)T的内置printf %(strftime_format)T

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

如果您希望年份采用17而不是2017两种数字格式,请执行以下操作:

DATE=`date +%d-%m-%y`

您正在寻找ISO 8601标准日期格式,所以如果您有GNU日期(或任何日期命令比1988年更现代),请执行以下操作: $(date -I)


#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

这里x是使用的样本日期,然后例子显示数据格式以及比当前日期多10分钟的日期。


date -d '1 hour ago' '+%Y-%m-%d'

产出将在2015-06-14





scripting