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

如何将stat获取的文件修改时间转为ISO8601 UTC毫秒时间戳?

解决方案

直接用date命令解析stat的输出并转换格式即可,这里提供两种常用写法:

方法一:命令替换方式

date -d "$(stat -c '%y' TEST_FILE.tar)" --utc +%FT%T.%3NZ

方法二:xargs传递参数方式

stat -c '%y' TEST_FILE.tar | xargs -I {} date -d {} --utc +%FT%T.%3NZ

原理说明

  • stat -c '%y' TEST_FILE.tar 输出文件带时区的原始修改时间,比如你给出的2023-08-21 05:16:10.802947000 +0200
  • date -d "<时间字符串>" 让GNU date解析该时间(注意:这个特性是GNU date专属,若用BSD/macOS的date,需替换为gdate)
  • --utc 将时间转换为UTC时区
  • +%FT%T.%3NZ 是指定输出格式:
    • %F 对应YYYY-MM-DD格式
    • %T 对应HH:MM:SS格式
    • %3N 提取毫秒(原输出的微秒会自动截断为三位)
    • 末尾的Z用来标识UTC时区

拿你提供的示例输入测试,运行后会输出2023-08-21T03:16:10.802Z,完全符合需求格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:42:06