date 命令参数说明
| 字符 | 描述 |
|---|---|
| %% | 一个文字的 % |
| %a | 当前locale 的星期名缩写(例如: 日,代表星期日) |
| %A | 当前locale 的星期名全称 (如:星期日) |
| %b | 当前locale 的月名缩写 (如:一,代表一月) |
| %B | 当前locale 的月名全称 (如:一月) |
| %c | 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25) |
| %C | 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) |
| %Y | 年 |
| %y | 年份后两位 (00..99) |
| %m | 月 |
| %d | 日 |
| %D | 按月计的日期;等于%m/%d/%y |
| %e | 按月计的日期,添加空格,等于%_d |
| %F | 完整日期格式,等价于 %Y-%m-%d |
| %H | 小时 24 小时制 hour (00..23) |
| %I | 小时 12 小时制 hour (01..12) |
| %M | 分钟 |
| %S | 秒钟 |
| %s | 当前时间秒数 |
| %T | 时钟 等于 %H:%M:%S |
| %c | 本地时间和日期 |
| %j | 一年中的第几天 |
| %W | 一年中的第几周 星期一为一周的第一天 |
| %w | 星期几 week(0..6) ; 0 是星期天 |
| %u | 星期几 week(1..7) ; 1 是星期一 |
| %U | 一年中的第几周 星期日为一周的第一天 |
| %V | ISO 周数 星期一为一周的第一天, ISO 周编号 |
| %x | 日期 (e.g., 12/31/99) |
| %X | 时间 (e.g., 23:13:48) |
| %z | 时区 数字格式 (e.g., +0800) |
| %:z | 时区 +08:00 |
| %::z | 时区 +08:00:00 |
| %:::z | 时区 +08 |
| %Z | 时区缩写 CST |
| %n | 换行 |
| %N | 纳秒(000000000-999999999) |
时间戳与时间互转
- 时间戳转换成时间格式
date -d @1718866413 "+%Y-%m-%d %H:%M:%S"
=> 2024-06-20 14:53:33
- 获取当前时间戳
date +%s
=> 1718869999
- 获取当天的时钟
date +%T
=> 15:54:22
- 获取某个时间节点对应的时间戳
date -d "2021-12-20" +%s
=> 1639929600
date -d "2021-12-20 20:20:10" +%s
=> 1640002810
- 获取当前时间或指定时间是全年的第几天
# 当前时间
date +%j
=> 172
# 指定时间
date -d "2021-12-20 20:20:10" +%j
=> 354
- 当前时间是第几周
date +%W
=> 25
- 查看当前时间日前与时间
#
date "+%x %X"
=> 06/20/2024 04:09:04 PM
- 查看当前时区
date +%z
=> +0800
- 设置时区获取时间
# 当前时间戳转换
TZ='America/Los_Angeles' date "+%Y-%m-%d %H:%M:%S"
=> 2024-06-20 01:22:26
TZ="Asia/Shanghai" date "+%Y-%m-%d %H:%M:%S"
=> 2024-06-20 16:26:38
# 指定时间戳转换
TZ='America/Los_Angeles' date -d @1718866413 "+%Y-%m-%d %H:%M:%S"
=> 2024-06-19 23:53:33
TZ="Asia/Shanghai" date -d @1718866413 "+%Y-%m-%d %H:%M:%S"
=> 2024-06-20 14:53:33
参考时区表 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
通过 timedatectl list-timezones 列出可用的时区
timedatectl list-timezones
=>Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
...
设置系统日期和时间
date –set="20140125 09:17:00"
通过 man date 查看 date 更多参数

