Python如何将字符串转换为日期


Posted in Python onJuly 31, 2020

问题

你的应用程序接受字符串格式的输入,但是你想将它们转换为 datetime 对象以便在上面执行非字符串操作。

解决方案

使用Python的标准模块 datetime 可以很容易的解决这个问题。比如:

>>> from datetime import datetime
>>> text = '2012-09-20'
>>> y = datetime.strptime(text, '%Y-%m-%d')
>>> z = datetime.now()
>>> diff = z - y
>>> diff
datetime.timedelta(3, 77824, 177393)
>>>

讨论

datetime.strptime() 方法支持很多的格式化代码, 比如 %Y 代表4位数年份, %m 代表两位数月份。 还有一点值得注意的是这些格式化占位符也可以反过来使用,将日期输出为指定的格式字符串形式。

比如,假设你的代码中生成了一个 datetime 对象, 你想将它格式化为漂亮易读形式后放在自动生成的信件或者报告的顶部:

>>> z
datetime.datetime(2012, 9, 23, 21, 37, 4, 177393)
>>> nice_z = datetime.strftime(z, '%A %B %d, %Y')
>>> nice_z
'Sunday September 23, 2012'
>>>

还有一点需要注意的是, strptime() 的性能要比你想象中的差很多, 因为它是使用纯Python实现,并且必须处理所有的系统本地设置。 如果你要在代码中需要解析大量的日期并且已经知道了日期字符串的确切格式,可以自己实现一套解析方案来获取更好的性能。 比如,如果你已经知道所以日期格式是 YYYY-MM-DD ,你可以像下面这样实现一个解析函数:

from datetime import datetime
def parse_ymd(s):
  year_s, mon_s, day_s = s.split('-')
  return datetime(int(year_s), int(mon_s), int(day_s))

实际测试中,这个函数比 datetime.strptime() 快7倍多。 如果你要处理大量的涉及到日期的数据的话,那么最好考虑下这个方案!

以上就是Python如何将字符串转换为日期的详细内容,更多关于Python字符串转换为日期的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
python如何使用unittest测试接口
Apr 04 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
Django 开发环境配置过程详解
Jul 18 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
python小程序之飘落的银杏
Apr 17 Python
Python OpenCV快速入门教程
Apr 17 Python
Python在字符串中处理html和xml的方法
Jul 31 #Python
python中selenium库的基本使用详解
Jul 31 #Python
Python过滤序列元素的方法
Jul 31 #Python
python中的django是做什么的
Jul 31 #Python
如何基于python把文字图片写入word文档
Jul 31 #Python
django教程如何自学
Jul 31 #Python
Python实现一个优先级队列的方法
Jul 31 #Python
You might like
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
jquery实现心算练习代码
2010/12/06 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
Python socket服务常用操作代码实例
2020/06/22 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
数据库专业英语
2012/11/30 面试题
JSF的标签库有哪些
2012/04/27 面试题
大学生职业生涯规划书模版
2013/12/30 职场文书
酒店节能减排方案
2014/05/26 职场文书
学习教师法的心得体会
2014/09/03 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
教师节晚会主持词
2015/06/30 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫