Python新手求助:将数字30041986格式化为DD/MM/YYYY格式的出生日期
解决数字转DD/MM/YYYY格式出生日期的问题
首先直接说结论:你想用strftime("%m/%d/%y")实现需求是不行的,原因有两个:
- 这个格式串的顺序是「月/日/两位年份」,和你要的「日/月/四位年份」(DD/MM/YYYY)完全不符,会得到错误的顺序和年份格式;
strftime是Python中datetime对象的方法,你现在的输入是数字30041986,得先把它转换成datetime对象,才能用strftime格式化。
正确的做法分三步:
- 把数字转换成8位字符串,保证格式是
DDMMYYYY; - 用
strptime把字符串解析成datetime对象; - 用
strftime以"%d/%m/%Y"格式输出。
完整代码示例:
from datetime import datetime # 处理输入的数字 birth_number = 30041986 birth_str = str(birth_number) # 解析为日期对象 birth_date = datetime.strptime(birth_str, "%d%m%Y") # 格式化为目标格式 formatted_birthdate = birth_date.strftime("%d/%m/%Y") print(formatted_birthdate) # 输出结果:30/04/1986
简单解释一下格式符:
%d:两位数字的日期(比如30)%m:两位数字的月份(比如04)%Y:四位数字的年份(比如1986)strptime里的"%d%m%Y"对应你输入的数字顺序「日-月-年」,用来告诉Python怎么解析你的字符串。
内容的提问来源于stack exchange,提问作者ARW
相关产品推荐
相关产品推荐

