在linux中,date
可以帮助我打印当前时间。如果要打印当前时间+ 1小时,我应该给出什么选择?
只需使用-d
(或--date
)对日期进行一些数学计算:
date -d '+1 hour' '+%F %T'
# ^^^^^^^^^^^^
例如:
$ date '+%F %T'
2013-04-22 10:57:24
$ date -d '+1 hour' '+%F %T'
2013-04-22 11:57:24
# ^
警告,以上仅适用于Linux,不适用于Mac OS。
在Mac OS上,等效命令是
date -v+1H
在shell脚本中,如果我们需要添加时间,那么使用下面的命令和日期格式(DATE字符串之前的PUT TIME)
date -d"11:15:10 2017-02-05 +2 hours" +"%Y-%m-%d %H:%M:%S"
这将输出2017-02-05 13:15:10
如果没有UTC,这不会导致正确的日期它不起作用
根据这个source,您可以这样做:
date --date ='1小时'
TZ=Asia/Calcutta date
应该工作(显然这将让你在加尔各答的时间)。
这仅更改此操作的TimeZone(TZ
)环境变量,它不会永久设置为您指定的新时区。
我们可以使用下面的代码得到它,我正在处理一个案例,其中我需要遍历过去3个月的日期,我使用下面的代码来遍历相同的
for i in {90..1}
do
st_dt=$(date +%F' 00:00:00' -d "-$i days")
echo $st_dt
j=$((i-1))
end_dt=$(date +%F' 00:00:00' -d "-$j days")
echo $end_dt
done