Python如何使用strftime自定义日期时间格式

2024-04-19 10:07:24 发布

您现在位置:Python中文网/ 问答频道 /正文

file.write("%s," %(fake.date_between(start_date=datetime(2001,1,1),end_date= datetime(2015,1,1))).strftime("%m / %Y").replace('0 ',' '))

在将数据写入csv文件时,我希望输出为monthnumber/year ex 8/2019,但当我签入csv文件时,此代码返回2019年8月。错误是什么


Tags: 文件csv数据datetimedatebetweenyearstart
1条回答
网友
1楼 · 发布于 2024-04-19 10:07:24

“2019年8月”可能是由于使用了“%b-%Y”,而不是由于“%m/%Y”。请仔细检查此文档:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

因为您需要像“2019年8月”这样的输出,所以年度部分的明显选择是使用“%Y”。但是对于月份部分来说有点棘手,因为python只允许零填充的数字月份输出,即“%m”。前导零将出现几个月,但不是全部。直接替换在这里不起作用。我建议使用正则表达式。下面的代码片段显示了如何使用正则表达式删除前导零(如果有的话)

import re
import datetime
d = datetime.datetime.now()
d.strftime('%m/%Y') #  > '03/2020'
re.sub('^0', '', d.strftime('%m/%Y')) #  > '3/2020'

相关问题 更多 >