YYYY-MM-DD格式的date在shell脚本中

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

在Bash:

date今年的月份

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

得到年,月,日,小时:分钟:date

 DATE=`date '+%Y-%m-%d %H:%M:%S'` 

其他可用的date格式可以从date手册页查看:

 man date 

试试: $(date +%F)

你可以做这样的事情:

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

你正在寻找ISO 8601标准的date格式,所以如果你有GNUdate(或任何date命令比1988年更现代),只需要: $(date -I)

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

产量将是2015-06-14

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

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

使用printf的spec %(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 $ date="$(printf '%(%Y-%m-%d)T' -1)" # Capture as var $date 

上面的答案不起作用。 这是教授

 dedetok@localhost:~/test$ tgl='date +%Y-%m-%d' dedetok@localhost:~/test$ echo $tgl date +%Y-%m-%d 

这是正确的方法

 dedetok@localhost:~/test$ tgl=$(date +'%Y-%m-%d') dedetok@localhost:~/test$ echo $tgl 2016-09-26 

bash版本

 dedetok@localhost:~/test$ bash --version GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)