Linux
date 命令用于显示和设置 Linux 系统上的日期和时间设置。
1、不带选项的Date命令
date命令不加任何命令选项,它显示当前日期和时间,包括星期几,月份,年份,h:m:s格式的时间以及时区,如下所示。
[root@server1 ~]# date
Mon May 24 14:50:31 CST 2021
2、以世界标准时间显示
要以UTC(世界标准时间)显示时间,需要加-u
选项。
[root@server1 ~]# date -u
Mon May 24 06:51:21 UTC 2021
3、以字符串格式显示特定日期
可以使用--date
选项以字符串格式显示特定日期,这不会影响系统的日期和时间,只是将日期格式转换为字符串:
[root@server1 ~]# date --date="5/20/2021 13:14"
Thu May 20 13:14:00 CST 2021
4、使用date命令检查过去的日期
date命令还可以打印相对于当前日期的过去日期和时间。例如查看9天前的日期是多少,请运行命令:
[root@server1 ~]# date --date="9 days ago"
Sat May 15 14:56:47 CST 2021
查看三个月前的日期是多少:
[root@server1 ~]# date --date="3 months ago"
Wed Feb 24 14:57:29 CST 2021
查看两年前的今天日期是多少:
[root@server1 ~]# date --date="2 years ago"
Fri May 24 15:02:40 CST 2019
5、使用date命令检查未来的日期
date命令也可以显示将来的日期,例如查看明天的日期是多少:
[root@server1 ~]# date --date="tomorrow"
Tue May 25 14:58:49 CST 2021
要检查从现在起一周后的确切日期,请运行:
[root@server1 ~]# date --date="next week"
Mon May 31 14:59:27 CST 2021
显示3周后的日期:
[root@server1 ~]# date --date="3 weeks"
Mon Jun 14 15:00:11 CST 2021
显示4个月后的日期,请执行以下操作:
[root@server1 ~]# date --date="4 months"
Fri Sep 24 15:01:42 CST 2021
显示两年后今天的日期:
[root@server1 ~]# date --date="2 years"
Wed May 24 15:03:32 CST 2023
6、date命令的选项
date命令带有许多选项,面列出了一些可用的格式设置选项。
- %D – 日期显示格式为 月/日/年
- %Y – 年份(例如:2021)
- %m – 月份(01-12)
- %B – 月份的完整名称 (例如 January)
- %b – 月份的短名称 (例如 Jan)
- %d – 月份中的哪一天 (例如 01)
- %j – 一年中的第几天(001-366)
- %u – 一个星期中的第几天 (1-7)
- %A – 星期几的全程(例如 Friday)
- %a – 星期几的短名称 (例如 Fri)
- %H – 小时,24小时制 (00-23)
- %I – 小时,12小时制 (01-12)
- %M – 分钟 (00-59)
- %S – 秒 (00-60)
使用date选项的语法非常简单:
date "+%option"
例如,要以yy/mm/dd格式打印日期,请运行:
[root@server1 ~]# date "+%Y/%m/%d"
2021/05/24
要打印星期几,月份,日,年份和当前时间,请执行以下操作:
[root@server1 ~]# date "+%A %B %d %Y %T"
Monday May 24 2021 15:24:07
7、如何设置日期和时间
date命令还允许设置日期和时间。例如,要将日期和时间设置为2021年6月25日上午11:15,请运行以下命令:
[root@server1 ~]# date --set="20210625 11:15"
Fri Jun 25 11:15:00 CST 2021
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