Python将元组转为字符串后,如何生成带前导零的日期格式?
如何修改Python代码实现日期补零格式化?
你当前的代码运行后输出2/5/2018,要改成02/05/2018的格式,有几种简单实用的方法,我给你整理如下:
先贴出你原来的代码方便对照:
date = [2, 5, 2018] text = "%s/%s/%s" % tuple(date) print(text)
方法1:使用旧式格式化的补零语法
把格式化符号里的%s换成%02d——02表示如果数字不足两位,自动用0补全到两位,d用来处理整数类型:
date = [2, 5, 2018] text = "%02d/%02d/%d" % tuple(date) print(text) # 输出:02/05/2018
年份用%d就足够了,因为它本身是四位数字,不需要补零。
方法2:使用f-string(Python 3.6+ 推荐使用)
f-string是Python 3.6及以后版本引入的更简洁直观的格式化方式,同样用:02d来指定补零规则:
date = [2, 5, 2018] text = f"{date[0]:02d}/{date[1]:02d}/{date[2]}" print(text) # 输出:02/05/2018
这种写法可读性更高,也是现在Python社区更推荐的格式化方案。
方法3:用str.zfill()手动补零
先把数字转成字符串,再调用zfill(2)方法将字符串补零到两位长度:
date = [2, 5, 2018] text = f"{str(date[0]).zfill(2)}/{str(date[1]).zfill(2)}/{date[2]}" print(text) # 输出:02/05/2018
这个方法适合已经将数字转为字符串的场景,不过步骤相比前两种会稍繁琐一点。
方法4:使用datetime模块(专业日期处理)
如果是正经处理日期相关的业务逻辑,更推荐用Python内置的datetime模块,它能更规范地处理日期格式,还能自动校验日期的合法性:
from datetime import date d = date(2018, 5, 2) text = d.strftime("%d/%m/%Y") print(text) # 输出:02/05/2018
这里%d代表两位日期、%m代表两位月份、%Y代表四位年份,用这种方式能避免手动处理时可能出现的错误(比如月份输入13这种非法值,模块会直接抛出异常)。
内容的提问来源于stack exchange,提问作者macson taylor
相关产品推荐
相关产品推荐

