3.15字符串转换为日期
问题:
你的应用程序接受字符串格式的输入,但是你想将它们转换为datetime对象以便在上面执行非字符串操作。
解决方案:
使用python的标准模块datetime可以很容易解决这个问题,比如:
from datetime import datetime
text='2022-03-15'
y=datetime.strptime(text,'%Y-%m-%d')
z=datetime.now()
diff=z-y
print(diff)# ->15:38:26.477008
讨论:
datatime.striptime()方法支持很多的格式化代码,比如%Y代表4位数年份,%m代表两位数月份。还有一点值得注意的是这些格式化占位符也可以反过来使用,将日期输出为指定的格式字符串形式。
比如,假设你的代码中生成了一个datetime对象,你想将它格式化为漂亮易读形式后放在自动生成的信件或者报告的顶部:
print(z)# ->2022-03-15 16:03:35.355668
print(z.strftime('%A %B %d,%Y'))# ->Tuesday March 15,2022
还有一点需要注意的是,striptime()的性能要比较你想象中的差很多,因为它是使用纯python实现的,并且必须处理所有的系统本地设置。如果你要在代码中需要解析大量的日期并且已经知道了日期字符串的确切格式,可以自己实现一套解析方案来获取更好的性能。比如,如果你已经知道所有日期格式是YYYY-MM-DD,你可以像以下这样实现又给解析函数:
def parse_ymd(s):
year_s, mon_s, day_s = s.split('-')
return datetime(int(year_s), int(mon_s), int(day_s))
print(parse_ymd('2022-3-15')) # ->2022-03-15 00:00:00
分类:
python3高级教程
标签:
python3高级教程学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构