首页 > 运维 > linux运维 > 正文

Linux查看日期和时间date命令用法

P粉602998670
发布: 2025-09-09 09:17:01
原创
643人浏览过
date命令可查看和设置系统时间,支持格式化输出及修改时区。使用date +"%Y-%m-%d %H:%M:%S"可自定义显示格式,sudo date -s设置系统时间,sudo hwclock --systohc同步硬件时钟;时区由/etc/localtime决定,可用timedatectl set-timezone配置,TZ环境变量可临时切换时区显示。

linux查看日期和时间date命令用法

Linux的

date
登录后复制
命令是一个非常基础但极其强大的工具,它不仅仅是用来显示当前系统日期和时间的,更能够按照我们需求来格式化输出,甚至直接修改系统时间。在我日常的系统管理和脚本编写中,这个命令的出镜率高得惊人,几乎是处理时间相关任务的起点。

解决方案

date
登录后复制
命令的核心作用在于查看和设置系统日期与时间。最简单的用法,直接在终端输入
date
登录后复制
,它会立即返回当前系统设定的日期、时间、时区以及年份。但它的魅力远不止于此,通过各种选项和格式化字符串,我们可以让它变得异常灵活。

例如,要查看当前时间:

date
登录后复制

输出可能类似:

Fri Apr 12 10:30:45 AM CST 2024
登录后复制

若想修改系统时间,比如将日期设置为2024年4月12日15点30分:

sudo date -s "2024-04-12 15:30:00"
登录后复制

或者使用更具体的格式:

sudo date --set="12 APR 2024 15:30:00"
登录后复制

这里需要

sudo
登录后复制
权限,因为修改系统时间是特权操作。修改后,通常还需要将系统时间同步到硬件时钟,以防重启后时间又回到旧的设置:

sudo hwclock --systohc
登录后复制

这个命令会将当前的系统时间(由

date
登录后复制
命令管理)写入到主板上的硬件时钟中。

Linux查看日期和时间date命令用法

Linux中如何自定义日期和时间的显示格式?

date
登录后复制
命令的强大之处,很大一部分体现在其灵活的格式化输出能力上。我们不总是需要默认的那种长串信息,有时只想要年-月-日,有时只想要时:分:秒,甚至需要特定的星期几信息。这就要用到
+
登录后复制
号后面跟着的格式化字符串了。

我个人觉得,掌握这些格式化符号是使用

date
登录后复制
命令的一个分水岭,从“会用”到“用好”的关键。比如,我经常需要生成带有时间戳的文件名,或者在日志中打印精确到毫秒的时间,这些都离不开格式化。

一些常用的格式化符号包括:

  • %Y
    登录后复制
    : 四位年份 (e.g., 2024)
  • %m
    登录后复制
    : 两位月份 (e.g., 04)
  • %d
    登录后复制
    : 两位日期 (e.g., 12)
  • %H
    登录后复制
    : 两位小时 (24小时制, e.g., 15)
  • %m
    登录后复制
    : 两位分钟 (e.g., 30)
  • %S
    登录后复制
    : 两位秒 (e.g., 05)
  • %S
    登录后复制
    : 从1970年1月1日00:00:00 UTC到现在的秒数 (Unix时间戳)
  • %w
    登录后复制
    : 星期几 (0表示星期天, 6表示星期六)
  • %a
    登录后复制
    : 星期几的缩写 (e.g., Fri)
  • %b
    登录后复制
    : 月份的缩写 (e.g., Apr)
  • %F
    登录后复制
    : 等同于
    %Y-%m-%d
    登录后复制
    (常用)
  • %T
    登录后复制
    : 等同于
    %H:%M:%S
    登录后复制
    (常用)

举几个例子: 想要输出

2024-04-12 15:30:05
登录后复制

date +"%Y-%m-%d %H:%M:%S"
登录后复制

如果我只想知道今天是今年的第几天:

date +"今天是今年的第 %j 天"
登录后复制

或者获取当前的Unix时间戳,这在编程和系统日志中非常有用:

date +"%s"
登录后复制

这些组合几乎可以满足所有日常对时间格式的需求,通过简单的拼接和组合,就能得到你想要的结果。

Linux查看日期和时间date命令用法

在Linux系统下,如何精确修改系统日期和时间?

修改系统时间并非只是简单地敲一个

date -s
登录后复制
命令那么直接,尤其是在需要精确调整或考虑持久性的场景下。在我看来,这涉及到两个层面:系统运行时的时间和系统重启后的时间。

美间AI
美间AI

美间AI:让设计更简单

美间AI 45
查看详情 美间AI

date -s
登录后复制
date --set
登录后复制
命令确实可以立即修改当前运行的系统时间。但这里有个陷阱,就是Linux系统内部维护着一个系统时钟(software clock),而主板上还有一个硬件时钟(hardware clock,也叫RTC,Real Time Clock)。默认情况下,系统启动时会从硬件时钟读取时间来初始化系统时钟。所以,如果你只修改了系统时钟,而没有更新硬件时钟,那么系统重启后,时间很可能又“变回去”了。

因此,修改系统时间通常是这样一套流程:

  1. 修改系统时钟:
    sudo date -s "YYYY-MM-DD HH:MM:SS"
    # 示例:
    sudo date -s "2024-04-12 15:30:00"
    登录后复制

    或者你也可以使用

    timedatectl
    登录后复制
    命令,它在现代Linux发行版(如基于systemd的系统)中是更推荐的做法,因为它能更好地管理时间和时区:

    sudo timedatectl set-time "2024-04-12 15:30:00"
    登录后复制
  2. 将系统时钟同步到硬件时钟:
    sudo hwclock --systohc
    登录后复制

    这一步至关重要,它确保了你修改后的时间在系统重启后依然生效。反过来,如果你想用硬件时钟的时间来更新系统时钟,可以使用

    sudo hwclock --hctosys
    登录后复制

在实际操作中,手动修改时间是比较少见的,更多时候我们会依赖网络时间协议(NTP)来自动同步时间,这才是确保时间精确性和一致性的最佳实践。但了解手动修改的机制,能帮助我们在NTP服务出现问题时进行故障排查。

Linux查看日期和时间date命令用法

Linux日期命令与时区管理有何关联?

时区问题,在我处理跨国项目或管理位于不同地理位置的服务器时,总是一个绕不开的话题。

date
登录后复制
命令的输出会直接受到系统时区设置的影响。一个看似简单的时间,背后却隐藏着复杂的时区逻辑。

Linux系统通常通过

/etc/localtime
登录后复制
文件来确定当前系统的时区。这个文件通常是一个指向
/usr/share/zoneinfo/
登录后复制
目录下某个时区文件的符号链接。当你运行
date
登录后复制
命令时,它会读取这个文件来确定如何显示本地时间。

例如,如果你的系统时区设置为上海,

date
登录后复制
命令会显示CST(China Standard Time)。如果设置为纽约,则会显示EST/EDT。

要查看当前系统时区,可以使用:

timedatectl
登录后复制

或者直接查看

/etc/localtime
登录后复制
的链接目标:

ls -l /etc/localtime
登录后复制

要修改系统时区,最推荐的方法是使用

timedatectl
登录后复制
(适用于systemd系统):

# 列出所有可用时区
timedatectl list-timezones

# 设置时区,例如设置为东京时间
sudo timedatectl set-timezone Asia/Tokyo
登录后复制

修改时区后,

date
登录后复制
命令的输出会立即反映新的时区设置。需要注意的是,
date
登录后复制
命令本身并没有直接修改时区的功能,它只是一个“观察者”和“执行者”,根据系统已有的时区配置来显示或设置时间。时区的管理是一个更宏观的系统配置问题。

理解

date
登录后复制
命令与时区的关系,对于编写跨时区工作的脚本或调试时间相关问题至关重要。你可能会遇到一些场景,需要临时切换
TZ
登录后复制
环境变量来查看不同时区的时间,而无需修改系统全局设置:

# 在不改变系统时区的情况下,查看伦敦时间
TZ='Europe/London' date
登录后复制

这在做一些时间计算或对比时非常方便,避免了频繁修改系统配置的麻烦。

以上就是Linux查看日期和时间date命令用法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号