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

如何在Bash中以yyyymmdd_hhmmss格式返回文件创建日期?

获取文件创建日期(yyyymmdd_hhmmss格式)

Windows 平台

PowerShell 实现

直接通过PowerShell的日期格式化功能获取:

Get-Item "C:\目标文件路径\file.txt" | Select-Object -ExpandProperty CreationTime | Get-Date -Format "yyyyMMdd_HHmmss"

替换C:\目标文件路径\file.txt为你的实际文件路径即可。

CMD 命令实现

借助wmic工具解析创建时间并格式化:

@echo off
set "target_file=C:\目标文件路径\file.txt"
for /f "tokens=2 delims==" %%a in ('wmic datafile where name^="%target_file:\=\\%" get creationdate /value') do set "raw_date=%%a"
echo 格式化后的创建日期:%raw_date:~0,8%_%raw_date:~8,6%
  • 第一行设置目标文件路径
  • 第二行通过wmic获取文件的原始创建时间(格式为YYYYMMDDHHMMSS.ffffff+时区偏移)
  • 第三行截取前8位日期和接下来6位时间,拼接成目标格式

Linux/macOS 平台

Linux 实现

注意:部分Linux文件系统(如ext4)默认不记录文件创建时间(birth time),若stat命令返回的创建时间为空,可改用修改时间(将%w替换为%y):

# 获取创建时间(若文件系统支持)
stat -c "%w" "/目标文件路径/file.txt" | cut -d' ' -f1,2 | sed -e 's/-//g' -e 's/://g' -e 's/ /_/'

# 若创建时间不可用,改用修改时间
stat -c "%y" "/目标文件路径/file.txt" | cut -d' ' -f1,2 | sed -e 's/-//g' -e 's/://g' -e 's/ /_/'
  • %w对应文件创建时间,%y对应修改时间
  • 通过cut提取日期和时间部分,再用sed去除分隔符并拼接格式

macOS 实现

macOS的stat工具支持直接指定创建时间的输出格式:

stat -f "%SB" -t "%Y%m%d_%H%M%S" "/目标文件路径/file.txt"
  • %SB表示文件的创建时间
  • -t "%Y%m%d_%H%M%S"指定输出格式为目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:51