在 Linux 系统中,时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 开始的秒数(或毫秒数)。要将时间戳转换为人类可读的日期和时间,可以使用多种命令行工具和方法。以下是几种常用的方法:
1. 使用 date 命令
a. 转换为本地时间
date -d @时间戳
示例:
date -d @1633072800
输出可能类似于:
2021-10-01 12:00:00 CST
b. 转换为 UTC 时间
date -d @时间戳 UTC
示例:
date -d @1633072800 UTC
输出可能类似于:
2021-10-01 04:00:00 UTC
c. 转换为毫秒级时间戳
如果你的时间戳是以毫秒为单位的,可以使用以下方法:
date -d @"$毫秒级时间戳" "+%Y-%m-%d %H:%M:%S"
示例:
date -d @"1633072800000" "+%Y-%m-%d %H:%M:%S"
2. 使用 printf 命令
printf "%(%Y-%m-%d %H:%M:%S)T\n" -v 当前时间 时间戳
示例:
printf "%(%Y-%m-%d %H:%M:%S)T\n" -v current_time 1633072800
echo $current_time
输出:
2021-10-01 12:00:00
3. 使用 awk 或 perl
a. 使用 awk
awk -v ts=时间戳 'BEGIN { cmd="date -d @" ts " +%Y-%m-%d\ %H:%M:%S"; cmd | getline result; close(cmd); print result }'
示例:
awk -v ts=1633072800 'BEGIN { cmd="date -d @" ts " +%Y-%m-%d\ %H:%M:%S"; cmd | getline result; close(cmd); print result }'
b. 使用 perl
perl -e 'use POSIX qw(strftime); my $timestamp = 1633072800; print strftime("%Y-%m-%d %H:%M:%S", localtime($timestamp)), "
"'
4. 使用编程语言(如 Python)
如果你需要在脚本中进行转换,可以使用编程语言。例如,使用 Python:
import datetime
timestamp = 1633072800
dt_object = datetime.datetime.utcfromtimestamp(timestamp)
print(dt_object.strftime('%Y-%m-%d %H:%M:%S'))
输出:
2021-10-01 04:00:00
注意事项
-
时区问题:
date命令默认使用系统的本地时区。如果需要指定时区,可以使用TZ环境变量或-u选项表示 UTC。TZ='Asia/Shanghai' date -d @1633072800 -
毫秒级时间戳:标准的
date命令通常只支持秒级时间戳。如果处理毫秒级时间戳,可能需要使用其他工具或编程语言进行处理。 -
兼容性:不同 Linux 发行版可能对
date命令的支持略有不同,尤其是涉及到新的日期和时间选项时。确保你的系统支持所使用的选项。
通过以上方法,你可以方便地将 Linux 时间戳转换为精确的可读日期和时间。根据具体需求选择合适的方法即可。
以上就是关于“怎样从Linux时间戳获取精确时间”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm