Linux 时间&时区
shell没有专门的时间转换函数,更没有oop之类的类方法,不过操作时间还是很简单的
date:
date 直接后跟格式化字符串默认显示当前时区的当前时间
- %a abbreviated weekday 简写的weekday
- %A full weekday name 全写weekday
- %b abbreviated month name 简写month
- %B full month name 全写month name
- %c locale's DATE and TIME
- %F full date, same as %Y-%m-%d
- %j day of year,今天是今年的第几天
- %s seconds since 1970-01-01 00:00:00 UTC 注意时区
- %S 当前秒数(00..60)
- %T full time, same as%H:%M:%S
- %z +hhmm numeric time zone (e.g. -0400)
- %Z alphebatic time zone abbreviation (e.g. EDT)
Options:
- date 后跟+%FORMAT_STRING来格式化时间
date '+The Current Datetime: %c'
- --date=STRING Display time described by string not now
进行时间计算
date -d '1 second' +%c # 1 second later date -d '-1 second' +%c # 1 second ago date -d '1 minute' +%c # 1 minute later date -d '-1 minute' +%c # 1 minute ago date -d '1 hour' +%c # 1 hour later date -d '-1 hour' +%c # 1 hour ago date -d '1 day' +%c # 1 day later date -d '-1 day' +%c # 1 day ago date -d '1 week' +%c # 1 week later date -d '-1 week' +%c # 1 week ago date -d '1 month' +%c # 1 month later date -d '-1 month' +%c # 1 month ago date -d '1 year' +%c # 1 year later date -d '-1 year' +%c # 1 year ago
-d "@timestamp" 转换时间戳
@后跟时间戳即可
- --reference 显示文件最后修改时间
date --reference file
- --utc 显示UTC时间
-
--set 设置时间
date --set 1:1:1 # 设置时间,日期保持不变
date -s '1999:1:1 1:1' # 同时修改日期和时间
- 计算时间脚本
s=`date +'%H:%M:%S'` echo -e Incept Time: "\t$s" sleep 2 e=`date +'%H:%M:%S'` echo -e Closure Time: "\t$e" s=$(date --date=$s +%s) e=$(date --date=$e +%s) echo -e Elapsed: "\t$[e-s]" seconds s=`date +%s` nmap -v -A -sV -F scanme.nmap.org e=`date +%s` difference=$((e-s)) echo -e Elapsed: "\t$difference"
Linux设定时区:
- tzselect命令
- 覆盖/etc/localtime软连接
ln -svfn /usr/share/zoneinfo/America/New_York /etc/localtime
一定要连接正确,如果/etc/localtime没有连接到正确时区,会显示UTC时间
- 设置系统变量TZ,该变量默认没有设置,此变量优先级最高
echo 'export TZ="Asia/Shanghai"' >> ~/.bashrc source ~/.bashrc
- 通过timedatectl
systemd默认有一个systemd类型的static服务timedatectl status
timedatectl set-timezone 'America/New_York'
优先级依然低于TZ变量
clock hwclock RTC
man rtc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律