Linux系统中date
命令的日期格式详解
在Linux系统中,date
命令是管理和操作日期时间的核心工具之一,它不仅能显示当前时间,还能通过灵活的格式控制符(Format Specifiers)生成自定义的日期时间格式,本文将从基础到进阶,全面解析date
命令的用法及格式化技巧,帮助用户高效处理时间相关的任务。
date
命令的基本用法直接输入date
命令,会输出系统当前时间(根据时区设置):
$ date 2025年 07月 20日 星期六 14:35:22 CST
通过符号指定格式控制符,生成特定格式的日期时间。
$ date +"%Y-%m-%d %H:%M:%S" 2025-07-20 14:35:22
以下为date
命令中常用的格式化符号(区分大小写):
符号 | 含义 | 示例 |
---|---|---|
%Y | 四位年份 | 2025 |
%y | 两位年份 | 24 |
%m | 两位月份(01-12) | 07 |
%d | 两位日期(01-31) | 20 |
%H | 24小时制的小时 | 14 |
%M | 分钟(00-59) | 35 |
%S | 秒(00-60) | 22 |
%A | 完整的星期名称 | Saturday |
%a | 缩写的星期名称 | Sat |
%B | 完整的月份名称 | July |
%b | 缩写的月份名称 | Jul |
%Z | 时区缩写 | CST |
%s | 自1970-01-01的秒数(时间戳) | 1721464522 |
日志文件通常需要包含日期时间,便于归档:
$ date +"log_%Y%m%d_%H%M.txt" log_20250720_1435.txt
date
和expr
)计算10天后的日期:
$ date -d "10 days" +"%Y-%m-%d" 2025-07-30
将时间戳转换为可读格式:
$ date -d @1721464522 +"%Y-%m-%d %H:%M:%S" 2025-07-20 14:35:22
通过date
命令修改系统时间:
$ sudo date -s "2025-07-20 14:35:00"
查看美国纽约的当前时间:
$ TZ='America/New_York' date +"%Y-%m-%d %H:%M:%S %Z" 2025-07-20 02:35:22 EDT
--rfc
参数输出标准格式生成RFC 3339格式时间(适用于API或程序调用):
$ date --rfc-3339=seconds 2025-07-20 14:35:22+08:00
确保格式字符串用双引号包裹,避免符号被Shell解析:
# 错误示例 $ date +%Y%m%d # 正确示例 $ date +"%Y%m%d"
检查系统时区设置:
$ timedatectl Local time: 2025-07-20 14:35:22 CST Universal time: 2025-07-20 06:35:22 UTC Timezone: Asia/Shanghai (CST, +0800)
-d
参数无效?某些Linux发行版(如BSD系)需替换为-j
或安装coreutils
工具包。
引用说明 参考了以下资料:
info date
) man 1 date
)