python - Python如何使用strftime自定义日期时间格式
问题描述
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 文件时,此代码返回 Aug-2019。错误是什么?
解决方案
“Aug-2019”可能来自使用“%b-%Y”,而不是来自“%m / %Y”。请仔细检查此文档:https ://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
由于您需要像“8/2019”这样的输出,因此年份部分的明显选择是使用“%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'
推荐阅读
- sqlite - 我们如何才能从日程表中找到所有员工曾经休过一个财政年度的长假或更多的假期?
- javascript - 根据另一个选定的选项更改选择选项
- pandas - 如何解释列矩阵以找到不平衡数据集的最佳模型?
- nginx - Nginx 服务器:如何从 URL 中删除文件夹路径?
- typescript - 为什么允许在 TypeScript 中与基元和对象相交?
- r - 最小化 docker image R shiny app 的大小
- java - 有没有办法将此代码更改为功能代码?
- javascript - 在javascript中将属性分配给字符串变量
- java - 使用 ssl 证书和 feign
- html - 在模态中使用时提交按钮的值不通过