Mac下的date命令是BSD(Berkeley Software Distribution)系的,Linux下date命令是GNU(GNU's Not Unix)系,二者用法有一些區別。 BSD並不特指任何一個BSD衍生版本,而是類UNIX操作系統中的一個分支的總稱。 Mac OS X和iOS實際 ...
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