如何快速将Ubuntu系统中的时间戳转换成易读的日期格式?

更新于
2026-09-29 14:41:30
2阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

你是否曾在 Ubuntu 终端里看到一串毫无意义的数字——比如 1633024800,却不知它代表什么?这就是 Unix 时间戳,记录自 1970 年 1 月 1 日起的秒数。话说回来,对许多程序管理员、开发者和运维同学频繁面对这样的数字会让人头疼不已:不知道怎么读、怎么转换、怎么验证…,

再看认识时间戳。痛点先说

痛点一:时间戳看起来像乱码,导致无法直观看出事件发生的具体日期。

如何快速将Ubuntu系统中的时间戳转换成易读的日期格式?

痛点二:缺乏统一的转换工具,导致每次都要手动查表或跑脚本。

痛点三:误用命令或格式导致结果错误,甚至影响日志分析和监控报警。

在终端快速转换

Ubuntu 自带的 date 命令可以直接把秒级时间戳转成可读格式。只需打开终端,输入:

date -d @1633024800
# 输出:Wed Sep 30 00:00:00 UTC 2021

说明:

如何快速将Ubuntu系统中的时间戳转换成易读的日期格式?
  • -d @ 表示解析一个时间戳。
  • 如果想得到本地时区的结果,只需要去掉 -u 参数;若需要 UTC,则加上 -u.
  • 例如:
  • date -u -d @1633024800
    # 输出:Wed Sep 30 00:00:00 UTC 2021
    

常见问题排查

  • "invalid date" 错误:检查时间戳是否为整数;怎么说呢,如果是毫秒级,需要先除以1000。
  • "Illegal option -- d" :确认使用的是 GNU coreutils 的 date,而非 BSD 程序。
  • "Date format not recognized" :确保使用的是正确的格式字符串,例如 %Y-%m-%d %H:%M:%S.

使用 Python 脚本批量转换

If your workflow involves parsing log files or integrating timestamp conversion into a larger Python project。you can use following snippet:

import datetime
def ts_to_str:
return datetime.datetime.fromtimestamp.strftime
# 示例
print) # 输出:2021-09-30 08:00:00
print) # 输出:2021/09/30

批量处理示例

with open as f:
for line in f:
ts = int)
print}")

利用 awk 提取日期部分

If you only need date and want a one-liner:

date -d @1633024800 +%F
# 输出:2021-09-30

结合 grep/sed 做一次性批处理

grep -Eo '\b\d{10}\b' biglog.log | \
while read ts;do
date -d @$ts '+%Y-%m-%d %H:%M:%S';老实说,done | sort | uniq> converted_log.txt

小结 &️️️️提高工作效率的小技巧

  • 快捷键 / alias : 在 ~/.bashrc 添加 alias 如下让日后输入更省事:
    alias ts='date -ud @' alias tslocal='date -d @' alias tsfmt='date -ud @ +%F' // 示例:ts 1633024800 → Fri Sep 30 2021 …tslocal ,tsfmt …
  • 自定义格式化模板 : 常用模板可写成函数或 shell script,以避免每次都记住完整命令。话说回来,从例如来看,
    cat> ~/bin/tsconv.sh <'EOF' #!/usr/bin/env bash fmt=${1:-'%F %T'} shift for ts in "$@"; do date -ud "@$ts" +"$fmt" done EOF chmod +x ~/bin/tsconv.sh // 用法: ~/bin/tsconv.sh '%Y-%m-%d' 1633024800 1633035600
  • 日志统一化 : 对于程序日志、应用日志混杂多种时区。可先统一为 UTC 再做分析,这样能避免因时区差异导致的数据偏移。
  • 监控告警 : 在 Promeus 或 Grafana 中配置相应的数据源时把时间戳字段转成标准 ISO8601 格式。可以让图表显示更直观,也方便跨网站共享。
  • 持续学习 : 熟练掌握 GNU date 的各种选项,可以让你在面临不同需求时游刃有余。

标签:Ubuntu

你是否曾在 Ubuntu 终端里看到一串毫无意义的数字——比如 1633024800,却不知它代表什么?这就是 Unix 时间戳,记录自 1970 年 1 月 1 日起的秒数。话说回来,对许多程序管理员、开发者和运维同学频繁面对这样的数字会让人头疼不已:不知道怎么读、怎么转换、怎么验证…,

再看认识时间戳。痛点先说

痛点一:时间戳看起来像乱码,导致无法直观看出事件发生的具体日期。

如何快速将Ubuntu系统中的时间戳转换成易读的日期格式?

痛点二:缺乏统一的转换工具,导致每次都要手动查表或跑脚本。

痛点三:误用命令或格式导致结果错误,甚至影响日志分析和监控报警。

在终端快速转换

Ubuntu 自带的 date 命令可以直接把秒级时间戳转成可读格式。只需打开终端,输入:

date -d @1633024800
# 输出:Wed Sep 30 00:00:00 UTC 2021

说明:

如何快速将Ubuntu系统中的时间戳转换成易读的日期格式?
  • -d @ 表示解析一个时间戳。
  • 如果想得到本地时区的结果,只需要去掉 -u 参数;若需要 UTC,则加上 -u.
  • 例如:
  • date -u -d @1633024800
    # 输出:Wed Sep 30 00:00:00 UTC 2021
    

常见问题排查

  • "invalid date" 错误:检查时间戳是否为整数;怎么说呢,如果是毫秒级,需要先除以1000。
  • "Illegal option -- d" :确认使用的是 GNU coreutils 的 date,而非 BSD 程序。
  • "Date format not recognized" :确保使用的是正确的格式字符串,例如 %Y-%m-%d %H:%M:%S.

使用 Python 脚本批量转换

If your workflow involves parsing log files or integrating timestamp conversion into a larger Python project。you can use following snippet:

import datetime
def ts_to_str:
return datetime.datetime.fromtimestamp.strftime
# 示例
print) # 输出:2021-09-30 08:00:00
print) # 输出:2021/09/30

批量处理示例

with open as f:
for line in f:
ts = int)
print}")

利用 awk 提取日期部分

If you only need date and want a one-liner:

date -d @1633024800 +%F
# 输出:2021-09-30

结合 grep/sed 做一次性批处理

grep -Eo '\b\d{10}\b' biglog.log | \
while read ts;do
date -d @$ts '+%Y-%m-%d %H:%M:%S';老实说,done | sort | uniq> converted_log.txt

小结 &️️️️提高工作效率的小技巧

  • 快捷键 / alias : 在 ~/.bashrc 添加 alias 如下让日后输入更省事:
    alias ts='date -ud @' alias tslocal='date -d @' alias tsfmt='date -ud @ +%F' // 示例:ts 1633024800 → Fri Sep 30 2021 …tslocal ,tsfmt …
  • 自定义格式化模板 : 常用模板可写成函数或 shell script,以避免每次都记住完整命令。话说回来,从例如来看,
    cat> ~/bin/tsconv.sh <'EOF' #!/usr/bin/env bash fmt=${1:-'%F %T'} shift for ts in "$@"; do date -ud "@$ts" +"$fmt" done EOF chmod +x ~/bin/tsconv.sh // 用法: ~/bin/tsconv.sh '%Y-%m-%d' 1633024800 1633035600
  • 日志统一化 : 对于程序日志、应用日志混杂多种时区。可先统一为 UTC 再做分析,这样能避免因时区差异导致的数据偏移。
  • 监控告警 : 在 Promeus 或 Grafana 中配置相应的数据源时把时间戳字段转成标准 ISO8601 格式。可以让图表显示更直观,也方便跨网站共享。
  • 持续学习 : 熟练掌握 GNU date 的各种选项,可以让你在面临不同需求时游刃有余。

标签:Ubuntu