在 Bash 中格式化日期和时间
Nilesh Katuwal
2023年1月30日
要在 Linux shell 脚本中格式化日期或时间,请使用标准 date 命令。
相同的命令可用于 shell 脚本。Linux 中的 date 命令显示和更改系统日期和时间。
用户还可以使用此命令以各种格式打印时间并计算未来和以前的日期。
在 Bash 中使用内置的 printf
格式化日期和时间
在大于或等于 4.2
的 bash 版本中,最好使用 printf
内置日期格式化程序而不是外部日期格式化程序。
要获得 YYYY-MM-DD
格式:
$ printf '%(%Y-%m-%d)T\n' -1
-1
表示当前时间。
输出:
2021-12-21
我们也可以将上面的命令写成:
$ printf '%(%F)T\n' -1
输出:
2021-12-21
我们可以通过使用 -v
并指定变量名称来保存当前时间。要将当前时间保存在变量 cdate
中并打印它,我们可以执行以下操作:
$ printf -v cdate '%(%F)T' -1
$ echo $cdate
上面的命令捕获当前日期作为变量并将其存储在 cdate
中,echo
将打印变量的值。
输出:
2021-12-21
在 Bash 中使用 date
命令格式日期和时间
我们可以对低于 4.2
的 bash 版本使用 date
命令。
以 MM-DD-YY
格式显示当前日期:
$ date +"%m-%d-%y"
+
符号表示用户定义的格式字符串,它指定日期和时间的显示方式。
输出:
12-21-21
要将年份转换为四位数,请将 y
更改为 Y
。
$ date +"%m-%d-%Y"
输出:
12-21-2021
我们还可以执行以下操作以 YYYY-MM-DD
格式打印当前日期。
$ date -I
输出:
2021-12-21
仅显示时间:
$ date +"%T"
输出:
13:01:00
以 HH:MM
格式显示时间:
$ date +"%H-%M"
输出:
13-02
要将当前日期存储在 shell 变量中,我们可以执行以下操作:
$ cdate=$(date +"%m-%d-%Y")
$ echo $cdate
我们已经捕获了当前日期并将其存储在 cdate
中。echo
打印 cdate
值。
输出:
12-21-2021
要在 date
中添加 N
天,我们使用以下命令:
date -d="YYYY-MM-DD+N days"
让我们看一个例子。
$ date -d "2021-12-21+20 days"
输出:
Mon 10 Jan 2022 12:00:00 AM