You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Pandas修改文件日期格式,需统一为%d-%m-%Y格式

统一文件日期格式为%d-%m-%Y的解决方案

没问题!要把文件里的日期统一成%d-%m-%Y(也就是日-月-年)格式,我给你几个实用的解决方案,根据你的使用场景选就行:

方案1:Python脚本(灵活适配各种文本文件)

如果你的文件是文本格式,Python可以精准处理日期转换,还能自动跳过无效日期,避免出错:

import re
from datetime import datetime

def convert_dates_in_file(file_path):
    # 读取文件内容
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 匹配YYYY-MM-DD格式的日期(比如2017-09-20)
    date_pattern = re.compile(r'\b(\d{4})-(\d{2})-(\d{2})\b')
    
    def replace_date(match):
        year, month, day = match.groups()
        try:
            # 解析日期并格式化为DD-MM-YYYY
            date_obj = datetime(int(year), int(month), int(day))
            return date_obj.strftime('%d-%m-%Y')
        except ValueError:
            # 遇到无效日期(比如2017-13-01),保持原内容不变
            return match.group(0)
    
    # 替换所有符合格式的日期
    updated_content = date_pattern.sub(replace_date, content)
    
    # 写回文件(建议先改成新文件名,比如'updated_your_file.txt',避免覆盖原文件)
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(updated_content)
    print(f"日期转换完成!已更新文件: {file_path}")

# 替换成你的实际文件路径
convert_dates_in_file('your_file.txt')

方案2:命令行工具(快速处理,适合Linux/macOS/Git Bash)

如果你的文件里都是标准的YYYY-MM-DD有效日期,用sed命令一行就能搞定:

# 直接修改原文件,同时生成备份文件(your_file.txt.bak)
sed -i.bak 's/\b\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)\b/\3-\2-\1/g' your_file.txt
  • -i.bak:修改原文件的同时生成备份,安全起见建议保留这个参数
  • 正则表达式会把YYYY-MM-DD的日期调换顺序为DD-MM-YYYY

如果是Windows系统,用PowerShell执行以下命令:

(Get-Content your_file.txt) -replace '\b(\d{4})-(\d{2})-(\d{2})\b', '$3-$2-$1' | Set-Content your_file.txt

注意事项

  • 优先备份原文件:不管用哪种方法,先复制一份原文件再操作,避免数据丢失
  • 若文件是二进制格式(比如Excel、Word),用对应软件的批量处理功能:
    • Excel中可以用TEXT函数:=TEXT(A1,"dd-mm-yyyy"),然后批量填充到其他单元格
    • Word中用「查找替换」功能,开启通配符后,查找内容填([0-9]{4})-([0-9]{2})-([0-9]{2}),替换内容填\3-\2-\1

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

火山引擎 最新活动