在 Linux 系统中保持准确的日期是任何 Linux 用户都应该掌握的基本技能之一,Linux date 命令用于显示和设置 Linux 系统的日期和时间。

本教程将向您展示如何使用 date 命令在 Linux 系统上显示和设置日期。

基本语法

$ date [option]… [+format]

(1) date 命令,不带选项

在本节部分,不带任何选项,date 命令以其基本形式显示当前的日期和时间,包括周、月、年的日期,时间格式为 hh:mm:ss,以及时区如下所示。

$ date
Sun May  9 15:41:17 IST 2021
$

(2) 显示 UTC 的日期和时间

使用 -u 选项以 UTC (协调世界时),以前称为 GMT (格林尼治标准时间) 显示时间。

$ date -u
Sun May  9 10:11:59 UTC 2021
$

(3) 以字符串格式显示特定日期

可以使用 --date 选项以字符串格式显示特定日期,如下所示。请注意,这不会影响系统的日期和时间,而只是将日期格式转换为字符串。

$ date --date="10/10/2021"
Sun Oct 10 00:00:00 IST 2021
$

(4) 查看过去的日期

date 命令还可以打印相对于当前日期的过去日期和时间。

检查9天前的日期

$ date --date="9 days ago"
Fri Apr 30 15:45:28 IST 2021
$

查看两周前的日期

$ date --date="2 weeks ago"
Sun Apr 25 15:47:11 IST 2021
$

查看三个月前的日期

$ date --date="3 months ago"
Tue Feb 9 15:47:52 IST 2021
$

查看三年前的日期

$ date --date="3 years ago"
Wed May  9 15:49:04 IST 2018
$

(5) 查看未来的日期

正如可以查看过去的日期一样,date 命令也可以显示未来的日期。

查看明天的日期

$ date --date="tomorrow"
Mon May 10 15:50:14 IST 2021
$

查看1周后的日期

$ date --date="next week"
Sun May 16 15:51:03 IST 2021
$

查看2周后的日期

$ date --date="2 weeks"
Sun May 23 15:51:46 IST 2021
$

查看4个月后的日期

$ date --date="4 months"
Thu Sep  9 15:52:33 IST 2021
$

查看2年后的日期

$ date --date="2 years"
Tue May  9 15:53:20 IST 2023
$

(6) 格式化选项

date 命令附带了许多选项,允许您自定义日期输出。下面列出了一些可用的格式化选项。

  • %D – Display date in the format mm/dd/yy
  • %Y – Year (e.g., 2021)
  • %m – Month (01-12)
  • %B – Month name in the full string format (e.g., February)
  • %b – Month name in the shortened string format (e.g., Feb)
  • %d – Day of month (e.g., 01)
  • %j – Day of year (001-366)
  • %u – Day of the week (1-7)
  • %A – Weekday in full string format(e.g., Friday)
  • %a – Weekday in shortened format (e.g., Fri)
  • %H – Hour (00-23)
  • %I – Hour (01-12)
  • %M – Minute (00-59)
  • %S – Second (00-60)

使用日期选项的语法非常简单

$ date “+%option”

以 yy/mm/dd 格式打印日期

$ date "+%Y-%m-%m"
2021-05-05
$

打印当天的星期、月、年和时间

$ date "+%A %B %Y %T"
Sunday May 2021 15:55:56
$

(7) 设置日期和时间

日期命令还允许您设置日期和时间。例如,将日期和时间设置为 2021 年 6 月 25 日上午 11:15

$ sudo date --set="20210625 11:15"
Fri Jun 25 11:15:00 IST 2021
$

注意: 系统时间最有可能不准确,不建议您使用上述方式设置系统的日期和时间。实现这一目标的更好方法是使用 Chrony Utility

如果您想要更改时区,那么使用 timedatectl 命令

$ sudo timedatectl set-timezone Asia/Kolkata

(8) 在变量中使用 date 命令

有时在创建 shell 脚本时,我们将 date 命令保存到一个变量,然后使用该变量创建日志文件,如下所示

#!/bin/bash
LOGFILE=/tmp/logs-$(date +%d-%m-%Y_%T)
echo "##Check Cluster for Failed Resources##"  >> $LOGFILE
crm_mon -1 -rf | grep FAILED  >> $LOGFILE
echo -e "\n\n" >> $LOGFILE
echo "##Check Cluster for Stopped Resources##"  >> $LOGFILE
crm_mon -1 -rf | grep -i STOPPED  >> $LOGFILE
echo -e "\n\n" >> $LOGFILE

我的开源项目


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。