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)