mac date命令详解

Mac下的date命令是BSD(Berkeley Software Distribution)系的,Linux下date命令是GNU(GNU's Not Unix)系,二者用法有一些区别。

BSD并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。

Mac OS X和iOS实际上基于Darwin,Darwin是BSD其中一个分支。

共同点

基本的时间格式的缩写是相同的,规则如下:

  • %Y:四位数形式的年份,如2018
  • %y:两位数形式的年份,如18
  • %m:表示前导0的月份,如01,12
  • %d:表示前导0的日期,如02,28
  • %h:三位的英文月份
  • %H:表示前导0的24小时(0~23)
  • %M:表示前导为0的分钟数(0~60)
  • %S:表示前导为0的描述秒数(0~60)
  • %s:表示距离格林尼治时间(1970年1月1日0点)的秒数

不同点

获取前一天和获取后一天的写法不同:

  • Mac,通过-v参数,-v-1d代表前一天,-v-1y代表上一年
  • Linux,通过--date参数实现,--date='-1 day'代表前一天,--date='-1 year'代表上一年

mac date命令用法详解

usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

参数解析

-j:使用-j才能使用-f

-n:默认情况下,如果定时进程正在运行,date命令会在本地组的所有机器设置时间。-n可以禁止这种行为,表示只设置当前计算机。

-u:显示或者设置日期为UTC(世界协调时钟)时间

-d:设置内核的时区,一般不使用

-r:秒转换时间

-t:(time zone)时区设置(GMT时区)

-v:根据参数调整时间

  • 不使用+|-,更改对应的时间
  • 使用+:增加对应的时间
  • 使用-:减少对应的时间

-f:根据格式调整时间

+:+号引导的一些格式,和正常的Linux格式一致。

使用示例

(1)查看当前时间戳(即转换成秒):

➜  ~ date +%s
1545705798

(2)当前时间转换指定格式

➜  ~ date +%Y-%m-%d-%H:%M:%S
2018-12-25-10:46:04

(3)时间戳转时间

➜  ~ date -r 1545705922
Tue Dec 25 10:45:22 CST 2018
posted @ 2018-12-25 23:54  AmyZYX  阅读(9693)  评论(0编辑  收藏  举报