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

如何将CSV文件中的特定格式日期转换为yyyy-mm-dd格式?

CSV日期格式转换:将date-submission列转为yyyy-mm-dd格式

方法一:使用Linux Bash(awk工具)

适合终端直接处理,无需额外依赖:

  1. 先定位date-submission列的索引(表头行的列位置):
COLUMN=$(head -n1 input.csv | tr ',' '\n' | grep -n 'date-submission' | cut -d: -f1)
  1. 用awk处理整个CSV文件,转换日期格式并输出到新文件:
awk -v col="$COLUMN" -F',' 'NR>1 {
    raw_date = substr($col, 1, 8)
    $col = substr(raw_date, 1, 4) "-" substr(raw_date, 5, 2) "-" substr(raw_date, 7, 2)
} 1' OFS=',' input.csv > output.csv
  • NR>1:跳过表头行,仅处理数据行
  • 通过substr提取年、月、日片段,拼接为yyyy-mm-dd格式
  • OFS=','保证输出的CSV仍以逗号作为分隔符

方法二:使用Python

提供两种实现方式,按需选择:

方式1:使用标准csv模块(无第三方依赖)

适合轻量级处理场景:

import csv

input_path = "input.csv"
output_path = "output.csv"

with open(input_path, "r", newline="") as infile, open(output_path, "w", newline="") as outfile:
    reader = csv.DictReader(infile)
    writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)
    writer.writeheader()

    for row in reader:
        # 提取前8位日期字符,拼接为目标格式
        date_str = row["date-submission"][:8]
        formatted_date = f"{date_str[:4]}-{date_str[4:6]}-{date_str[6:8]}"
        row["date-submission"] = formatted_date
        writer.writerow(row)

方式2:使用pandas库(代码更简洁)

适合大型CSV或复杂数据操作场景,需先安装pandas:

pip install pandas

处理代码:

import pandas as pd

# 读取CSV文件
df = pd.read_csv("input.csv")
# 转换日期格式:提取前8位→转为日期对象→格式化为yyyy-mm-dd字符串
df["date-submission"] = pd.to_datetime(df["date-submission"].str[:8], format="%Y%m%d").dt.strftime("%Y-%m-%d")
# 保存转换后的结果
df.to_csv("output.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:21:10