如何在Linux上添加日期并获取新日期

时间:2020-01-09 14:16:49  来源:igfitidea点击:

如何使用Linux CLI添加最新日期?
我想使用CLI找出2020年7月29日+ 20天的日期,我该怎么做?
我们使用date命令在Linux或类似Unix的操作系统上显示当前日期和时间。
同样,您可以在Linux上使用date命令设置日期和时间。
让我们看看如何使用date命令将天添加到给定的日期/期间。

如何在Linux上添加日期并获取新日期

对于日期的GNU/Linux版本,显示当前时间和日期的语法如下(macOS/FreeBSD/* BSD用户跳到下面):

date

使用TZ显示美国西海岸的时间,而无需更改本地时间:

TZ='America/Los_Angeles' date

这是美国西海岸下周四凌晨6点的当地时间的另一个示例:

date --date='TZ="America/Los_Angeles" 06:00 next Thu'

当使用GNU日期版本时,我们可以显示由--date或-d选项描述的时间。
假设您要打印前一天的日期,请执行:

date --date='2 days ago'

让我们看一下这四个月零两天的日期:

date --date='4 months 2 day'

添加日期到日期命令

语法如下所示,以在给定日期上添加天数并在GNU/Linux日期版本上找到新的日期/时间:

date -d="YYYY-MM-DD+N days"
 
## long version ##
date --date="YYYY-MM-DD+N days"
 
## set time zone ##
TZ='TIME_ZONE_HERE' date -d="YYYY-MM-DD+N days"

例如,将2020年7月29日添加20天,如下所示:

date -d "2020-07-29+20 days"
 
## Try NYZ time zone ##
TZ='America/New_York' date -d "2020-07-29+20 days"
 
## add 5 days to 14/Aug/2020 for IST time zone
TZ='Asia/Kolkata' date -d "2020-07-29+20 days"
 
eggs="2020/07/29"
days="20 days"
echo "Eggs expiry date $(date -d "${eggs}+${days}")"

相关:使用Bash Shell Date命令获取昨天或明天的日期以及如何格式化日期以显示或在Shell脚本中使用以获取更多信息

减去日期日期命令

只需尝试:

date -d "YYYY-MM-DD-N days"
date -d "2020-08-15-5 days"
Monday 10 August 2020 12:00:00 AM IST

加上X天,并在macOS或BSD上获取新日期

  • BSD系列操作系统(包括基于macOS Unix的台式机)的语法略有不同:
date -v {format}
 
## Display the current date/time ##
date 
 
## Adding 2 days to the current date on macOS / FreeBSD ##
date -v +2d
 
## Subtracting 4 days from the current date on macOS / FreeBSD / OpenBSD / NetBSD etc ##
date -v -4d
 
## Add 20 days to the current date when using bsdutils date using TZ ##
TZ='America/Los_Angeles' date -v +20d

在macOS/* BSD UNIX中添加最新日期

语法如下:

date -j -v +Nd -f "%Y-%m-%d" "YYYY-mm-dd" +%Y-%m-%d

例如,在macOS或FreeBSD上将20天添加到2020年8月15日,如下所示:

date -j -v +20d -f "%Y-%m-%d" "2020-08-15" +%Y-%m-%d

在这个最后的示例中,使用bash shell从2020年8月20日减去10天:

days="10d"
my_date="2020-08-20"
date -j -v -${days} -f "%Y-%m-%d" "${my_date}" +%Y-%m-%d