如何使用 Date 命令 ====== 在本文中, 我们会通过一些案例来演示如何使用 linux 中的 date 命令. date 命令可以用户输出/设置系统日期和时间. Date 命令很简单, 请参见下面的例子和语法. 默认情况下,当不带任何参数运行 date 命令时,它会输出当前系统日期和时间: ```shell date ``` ``` Sat 2 Dec 12:34:12 CST 2017 ``` #### 语法 ``` Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] Display the current time in the given FORMAT, or set the system date. ``` ### 案例 下面这些案例会向你演示如何使用 date 命令来查看前后一段时间的日期时间. #### 1\. 查找5周后的日期 ```shell date -d "5 weeks" Sun Jan 7 19:53:50 CST 2018 ``` #### 2\. 查找5周后又过4天的日期 ```shell date -d "5 weeks 4 days" Thu Jan 11 19:55:35 CST 2018 ``` #### 3\. 获取下个月的日期 ```shell date -d "next month" Wed Jan 3 19:57:43 CST 2018 ``` #### 4\. 获取下周日的日期 ```shell date -d last-sunday Sun Nov 26 00:00:00 CST 2017 ``` date 命令还有很多格式化相关的选项, 下面的例子向你演示如何格式化 date 命令的输出. #### 5\. 以 yyyy-mm-dd 的格式显示日期 ```shell date +"%F" 2017-12-03 ``` #### 6\. 以 mm/dd/yyyy 的格式显示日期 ```shell date +"%m/%d/%Y" 12/03/2017 ``` #### 7\. 只显示时间 ```shell date +"%T" 20:07:04 ``` #### 8\. 显示今天是一年中的第几天 ```shell date +"%j" 337 ``` #### 9\. 与格式化相关的选项 | **%%** | 百分号 (“**%**“). | | **%a** | 星期的缩写形式 (像这样, **Sun**). | | **%A** | 星期的完整形式 (像这样, **Sunday**). | | **%b** | 缩写的月份 (像这样, **Jan**). | | **%B** | 当前区域的月份全称 (像这样, **January**). | | **%c** | 日期以及时间 (像这样, **Thu Mar 3 23:05:25 2005**). | | **%C** | 本世纪; 类似 **%Y**, 但是会省略最后两位 (像这样, **20**). | | **%d** | 月中的第几日 (像这样, **01**). | | **%D** | 日期; 效果与 **%m/%d/%y** 一样. | | **%e** | 月中的第几日, 会填充空格; 与 **%_d** 一样. | | **%F** | 完整的日期; 跟 **%Y-%m-%d** 一样. | | **%g** | 年份的后两位 (参见 **%G**). | | **%G** | 年份 (参见 **%V**); 通常跟 **%V** 连用. | | **%h** | 同 **%b**. | | **%H** | 小时 (**00**..**23**). | | **%I** | 小时 (**01**..**12**). | | **%j** | 一年中的第几天 (**001**..**366**). | | **%k** | 小时, 用空格填充 ( **0**..**23**); same as **%_H**. | | **%l** | 小时, 用空格填充 ( **1**..**12**); same as **%_I**. | | **%m** | 月份 (**01**..**12**). | | **%M** | 分钟 (**00**..**59**). | | **%n** | 换行. | | **%N** | 纳秒 (**000000000**..**999999999**). | | **%p** | 当前区域时间是上午 **AM** 还是下午 **PM**; 未知则为空哦. | | **%P** | 类似 **%p**, 但是用小写字母现实. | | **%r** | 当前区域的12小时制现实时间 (像这样, **11:11:04 PM**). | | **%R** | 24-小时制的小时和分钟; 同 **%H:%M**. | | **%s** | 从 1970-01-01 00:00:00 UTC 到现在经历的秒数. | | **%S** | 秒数 (**00**..**60**). | | **%t** | tab 制表符. | | **%T** | 时间; 同 **%H:%M:%S**. | | **%u** | 星期 (**1**..**7**); 1 表示 **星期一**. | | **%U** | 一年中的第几个星期, 以周日为一周的开始 (**00**..**53**). | | **%V** | 一年中的第几个星期,以周一为一周的开始 (**01**..**53**). | | **%w** | 用数字表示周几 (**0**..**6**); 0 表示 **周日**. | | **%W** | 一年中的第几个星期, 周一为一周的开始 (**00**..**53**). | | **%x** | Locale’s date representation (像这样, **12/31/99**). | | **%X** | Locale’s time representation (像这样, **23:13:48**). | | **%y** | 年份的后面两位 (**00**..**99**). | | **%Y** | 年. | | **%z** | +hhmm 指定数字时区 (像这样, **-0400**). | | **%:z** | +hh:mm 指定数字时区 (像这样, **-04:00**). | | **%::z** | +hh:mm:ss 指定数字时区 (像这样, **-04:00:00**). | | **%:::z** | 指定数字时区, 其中 “**:**” 的个数由你需要的精度来决定 (例如, **-04**, **+05:30**). | | **%Z** | 时区的字符缩写(例如, EDT). | #### 10\. 设置系统时间 你也可以使用 date 来手工设置系统时间,方法是使用 `--set` 选项, 下面的例子会将系统时间设置成2017年8月30日下午4点22分 ```shell date --set="20170830 16:22" ``` 当然, 如果你使用的是我们的 [VPS Hosting services][1], 你总是可以联系并咨询我们的Linux专家管理员 (通过客服电话或者下工单的方式) 关于 date 命令的任何东西. 他们是 24×7 在线的,会立即向您提供帮助. PS. 如果你喜欢这篇帖子,请点击下面的按钮分享或者留言. 谢谢. -------------------------------------------------------------------------------- via: https://www.rosehosting.com/blog/use-the-date-command-in-linux/ 作者:[][a] 译者:[lujun9972](https://github.com/lujun9972) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:https://www.rosehosting.com [1]:https://www.rosehosting.com/hosting-services.html