Linux常用命令学习笔记:date

命令概述

date命令用于显示或设置系统的日期和时间。该命令功能强大,可以显示当前时间、设置系统时间,还可以按照指定格式输出时间信息。

语法格式

date [选项] [+格式]
date [-s|--set] 日期时间

常用选项

选项说明
-d显示指定字符串所描述的时间
-s设置系统时间
-u显示或设置UTC时间
-R以RFC 2822格式输出时间
-I以ISO 8601格式输出时间
--help显示帮助信息
--version显示版本信息

时间格式控制符

格式符说明示例
%Y年份(4位)2025
%y年份(2位)25
%m月份(01-12)12
%d日(01-31)22
%H小时(00-23)14
%M分钟(00-59)30
%S秒(00-59)45
%F完整日期(%Y-%m-%d)2025-12-22
%T时间(%H:%M:%S)14:30:45
%s时间戳(从1970-01-01起)1734859845
%A星期全称Monday
%a星期缩写Mon
%B月份全称December
%b月份缩写Dec

使用示例

1. 显示当前时间

date
# 输出:Mon Dec 22 14:30:45 CST 2025

2. 按指定格式显示时间

date "+%Y-%m-%d %H:%M:%S"
# 输出:2025-12-22 14:30:45

date "+%F %T"
# 输出:2025-12-22 14:30:45

3. 显示时间戳

date +%s
# 输出:1734859845

4. 显示指定日期

date -d "2025-01-01"
# 输出:Wed Jan  1 00:00:00 CST 2025

date -d "yesterday"
# 输出:Sun Dec 21 14:30:45 CST 2025

date -d "tomorrow"
# 输出:Tue Dec 23 14:30:45 CST 2025

date -d "1 day ago"
# 输出:Sun Dec 21 14:30:45 CST 2025

5. 设置系统时间

date -s "2025-12-22 14:30:45"
# 将系统时间设置为2025年12月22日14:30:45

date -s "14:30:45"
# 只设置时间,日期不变

6. 显示UTC时间

date -u
# 输出:Mon Dec 22 06:30:45 UTC 2025

7. 计算时间差

date -d "2025-12-25" +%s
# 输出:1735084800

date -d "2025-12-22" +%s
# 输出:1734859845

# 计算相差秒数
echo $((1735084800 - 1734859845))
# 输出:224955

实际应用场景

1. 日志文件命名

# 使用日期作为日志文件名
logfile="app_$(date +%Y%m%d).log"
echo "Log file: $logfile"

2. 备份文件

# 备份文件并添加时间戳
cp data.txt data.txt.bak.$(date +%Y%m%d_%H%M%S)

3. 定时任务

# 在脚本中记录执行时间
echo "Script started at: $(date '+%F %T')"
# 执行任务...
echo "Script completed at: $(date '+%F %T')"

4. 计算脚本执行时间

start_time=$(date +%s)
# 执行耗时操作
sleep 5
end_time=$(date +%s)
echo "Execution time: $((end_time - start_time)) seconds"

注意事项

  • 修改系统时间需要root权限
  • 时间格式控制符区分大小写
  • 使用-d选项可以灵活处理各种时间表达式
  • 时间戳是从1970年1月1日00:00:00 UTC开始的秒数

相关命令

  • hwclock:硬件时钟管理
  • timedatectl:系统时间和时区管理
  • cal:显示日历

作 者:南烛
链 接:https://www.itnotes.top/archives/547
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇