You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Linux命令将2019-03-08T17:35:44Z转为Epoch时间?

嘿,这个问题我刚好经常碰到,在Linux里转Epoch时间其实有不少实用方法,我分情况给你讲清楚:

一、Linux系统中通用的时间转Epoch时间方法

Epoch时间指的是从1970-01-01 00:00:00 UTC到指定时间的总秒数,最常用的工具就是系统自带的date命令:

  • 转换当前时间到Epoch:
    直接执行这条命令就行,输出就是当前时间的Epoch秒数:
    date +%s
    
  • 转换指定普通格式时间(比如2019-03-08 17:35:44):
    用-d参数指定要转换的时间字符串,再搭配+%s输出格式:
    date -d "2019-03-08 17:35:44" +%s
    
二、针对特定格式2019-03-08T17:35:44Z的转换方法

你提到的这个是ISO 8601格式的UTC时间(T是日期和时间的分隔符,Z表示UTC时区),下面两种方法都能搞定:

方法1:直接用GNU date命令(推荐)

大多数Linux发行版默认用的是GNU date,它能自动识别这种ISO格式,直接运行:

date -d "2019-03-08T17:35:44Z" +%s

执行后会输出对应的Epoch时间(这个例子的结果是1552066544)。

如果你的系统是BSD环境(比如嵌入式Linux或macOS),需要指定输入格式:

date -j -f "%Y-%m-%dT%H:%M:%SZ" "2019-03-08T17:35:44Z" +%s

这里-j表示不修改系统时间,-f用来定义输入的时间格式模板。

方法2:预处理字符串后转换(兼容性更强)

如果担心不同系统date命令的差异,可以先把字符串里的T换成空格、去掉Z,再用date处理:

echo "2019-03-08T17:35:44Z" | sed 's/T/ /; s/Z//' | xargs date -d {} +%s

要是用BSD date,就把后面的date -d {} +%s换成date -j -f "%Y-%m-%d %H:%M:%S" {} +%s就行。

内容的提问来源于stack exchange,提问作者sebastian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:23:10