Python 日期与时间转换的方法


Posted in Python onAugust 01, 2020

问题

你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。

解决方案

为了执行不同时间单位的转换和计算,请使用 datetime 模块。 比如,为了表示一个时间段,可以创建一个 timedelta 实例,就像下面这样:

>>> from datetime import timedelta
>>> a = timedelta(days=2, hours=6)
>>> b = timedelta(hours=4.5)
>>> c = a + b
>>> c.days
2
>>> c.seconds
37800
>>> c.seconds / 3600
10.5
>>> c.total_seconds() / 3600
58.5
>>>

如果你想表示指定的日期和时间,先创建一个 datetime 实例然后使用标准的数学运算来操作它们。比如:

>>> from datetime import datetime
>>> a = datetime(2012, 9, 23)
>>> print(a + timedelta(days=10))
2012-10-03 00:00:00
>>>
>>> b = datetime(2012, 12, 21)
>>> d = b - a
>>> d.days
89
>>> now = datetime.today()
>>> print(now)
2012-12-21 14:54:43.094063
>>> print(now + timedelta(minutes=10))
2012-12-21 15:04:43.094063
>>>

在计算的时候,需要注意的是 datetime 会自动处理闰年。比如:

>>> a = datetime(2012, 3, 1)
>>> b = datetime(2012, 2, 28)
>>> a - b
datetime.timedelta(2)
>>> (a - b).days
2
>>> c = datetime(2013, 3, 1)
>>> d = datetime(2013, 2, 28)
>>> (c - d).days
1
>>>

讨论

对大多数基本的日期和时间处理问题, datetime 模块已经足够了。 如果你需要执行更加复杂的日期操作,比如处理时区,模糊时间范围,节假日计算等等, 可以考虑使用 dateutil模块

许多类似的时间计算可以使用 dateutil.relativedelta() 函数代替。 但是,有一点需要注意的就是,它会在处理月份(还有它们的天数差距)的时候填充间隙。看例子最清楚:

>>> a = datetime(2012, 9, 23)
>>> a + timedelta(months=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'months' is an invalid keyword argument for this function
>>>
>>> from dateutil.relativedelta import relativedelta
>>> a + relativedelta(months=+1)
datetime.datetime(2012, 10, 23, 0, 0)
>>> a + relativedelta(months=+4)
datetime.datetime(2013, 1, 23, 0, 0)
>>>
>>> # Time between two dates
>>> b = datetime(2012, 12, 21)
>>> d = b - a
>>> d
datetime.timedelta(89)
>>> d = relativedelta(b, a)
>>> d
relativedelta(months=+2, days=+28)
>>> d.months
2
>>> d.days
28
>>>

以上就是Python 日期与时间转换的方法的详细内容,更多关于Python 日期与时间转换的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
解决谷歌搜索技术文章时打不开网页问题的python脚本
Feb 10 Python
Python中处理字符串之islower()方法的使用简介
May 19 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
python3中zip()函数使用详解
Jun 29 Python
Python global全局变量函数详解
Sep 18 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
python实现求特征选择的信息增益
Dec 18 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
解决python3 安装不了PIL的问题
Aug 16 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
Python第三方库安装缓慢的解决方法
Feb 06 Python
Python 执行矩阵与线性代数运算
Aug 01 #Python
Python实现数字的格式化输出
Aug 01 #Python
Python实现一个简单的递归下降分析器
Aug 01 #Python
Python 如何在字符串中插入变量
Aug 01 #Python
Python打印不合法的文件名
Jul 31 #Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 #Python
Python 如何测试文件是否存在
Jul 31 #Python
You might like
php过滤危险html代码
2008/08/18 PHP
php 文件上传实例代码
2012/04/19 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python将ip地址转换成整数的方法
2015/03/17 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
分分钟入门python语言
2018/03/20 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
关于人生的感言
2014/01/17 职场文书
单位在职证明书
2014/09/11 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android