如何使用datetime模块设置不同日期格式及修改CSV写入日期格式
Python datetime模块日期格式处理与CSV写入优化
一、将CSV中的日期格式改为dd-mm-yyyy
直接把datetime.date或datetime.datetime对象写入CSV时,Python会默认输出yyyy-mm-dd格式的字符串。要改成dd-mm-yyyy,只需用strftime()方法将日期对象转换成指定格式的字符串后再写入。
单个日期写入示例
import datetime import csv # 获取当前日期 current_date = datetime.date.today() # 转换为dd-mm-yyyy格式 formatted_date = current_date.strftime('%d-%m-%Y') # 写入CSV文件 with open('single_date.csv', 'w', newline='') as csv_file: writer = csv.writer(csv_file) writer.writerow(['Formatted Date']) writer.writerow([formatted_date])
批量日期写入示例
处理多个日期对象时,用列表推导式批量转换即可:
import datetime import csv # 构造批量日期列表 date_objects = [ datetime.date(2024, 1, 5), datetime.date(2024, 2, 15), datetime.date(2024, 3, 25) ] # 批量转换格式 formatted_dates = [date.strftime('%d-%m-%Y') for date in date_objects] # 写入CSV with open('batch_dates.csv', 'w', newline='') as csv_file: writer = csv.writer(csv_file) writer.writerow(['Dates']) # 逐行写入 for date in formatted_dates: writer.writerow([date])
二、用datetime模块生成不同格式的日期
核心是通过strftime()方法,搭配不同的格式化指令组合出需要的日期格式。以下是常用指令及示例:
常用格式化指令
%Y:4位完整年份(如2024)%y:2位年份(如24)%m:2位月份(01-12)%d:2位日期(01-31)%b:缩写月份名(Jan、Feb)%B:完整月份名(January、February)%a:缩写星期名(Mon、Tue)%A:完整星期名(Monday、Tuesday)%H:24小时制小时(00-23)%I:12小时制小时(01-12)%p:AM/PM标识%M:分钟(00-59)%S:秒(00-59)
不同格式生成示例
import datetime # 获取当前日期时间 now = datetime.datetime.now() # dd-mm-yyyy HH:MM:SS 格式 print(now.strftime('%d-%m-%Y %H:%M:%S')) # 输出示例:10-05-2024 15:40:22 # 日期+完整月份名:10 May 2024 print(now.strftime('%d %B %Y')) # 2位年份+缩写月份:10-May-24 print(now.strftime('%d-%b-%y')) # 12小时制带星期:03:40 PM, Friday print(now.strftime('%I:%M %p, %A')) # 仅年份和月份:2024-05 print(now.strftime('%Y-%m'))
补充:解析指定格式的日期字符串
如果需要把dd-mm-yyyy格式的字符串转回datetime对象,用strptime()方法:
date_str = '10-05-2024' parsed_date = datetime.datetime.strptime(date_str, '%d-%m-%Y') print(parsed_date) # 输出:2024-05-10 00:00:00
内容的提问来源于stack exchange,提问作者rajram333
相关产品推荐
相关产品推荐

