经常在写一些脚本时,需要在输出中打一些timestamp,却苦于不知如何格式化timestamp,在网上收集了一些利用date
命令输出timestamp格式的方法。
YYYY-MM-DD_hh:mm:ss | date +%F_%T | 2018-07-30_17:38:48 |
YYYYMMDD_hhmmss | date +%Y%m%d_%H%M%S | 20180730_173848 |
YYYYMMDD_hhmmss (UTC version) | date --utc +%Y%m%d_%H%M%SZ | 20180730_073848Z |
YYYYMMDD_hhmmss (with local TZ) | date +%Y%m%d_%H%M%S%Z | 20180730_173848AEST |
YYYYMMSShhmmss | date +%Y%m%d%H%M%S | 20180730173848 |
YYYYMMSShhmmssnnnnnnnnn | date +%Y%m%d%H%M%S%N | 20180730173848489146493 |
YYMMDD_hhmmss | date +%y%m%d_%H%M%S | 180730_173848 |
Seconds since UNIX epoch: | date +%s | 1532936328 |
Nanoseconds only: | date +%N | 490710955 |
Nanoseconds since UNIX epoch: | date +%s%N | 1532936328491188547 |
ISO8601 UTC timestamp | date --utc +%FT%TZ | 2018-07-30T07:38:48Z |
ISO8601 UTC timestamp + ms | date --utc +%FT%T.%3NZ | 2018-07-30T07:38:48.492Z |
ISO8601 Local TZ timestamp | date +%FT%T%Z | 2018-07-30T17:38:48AEST |
YYYY-MM-DD (Short day) | date +%F(%a) | 2018-07-30(Mon) |
YYYY-MM-DD (Long day) | date +%F(%A) | 2018-07-30(Monday) |
- 带
:
的不适合作为文件名,需要转义 - 最后两条括号里的文字依赖于系统环境变量
LANG
,比如设置LANG=ja_JP
会打印2018-07-30(月)
和2018-07-30(月曜日)
。