问题

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

解决方案

为了执行不同时间单位的转换和计算,请使用 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 "", line 1, in

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 日期与时间转换的方法

本文地址: http://www.cppcns.com/jiaoben/python/329557.html

时间转换python_Python 日期与时间转换的方法相关推荐

  1. vue中使用moment处理时间戳转换成日期或时间格式

    vue中使用moment处理时间戳转换成日期或时间格式 npm i moment import moment from 'moment' <template><div>< ...

  2. mysql日期和时间类型_MySQL日期和时间类型

    MySQL中存储日和和时间,使用日期和时间类型. 提供的包括YEAR.DATE.TIME.DATETIME和TIMESTAMP. YEAR 占用:1字节 取值范围:1901~2155 日期格式:YYY ...

  3. mysql 创建时间类型,MySQL日期和时间类型

    搜索热词 MysqL中存储日和和时间,使用日期和时间类型. 提供的包括YEAR.DATE.TIME.DATETIME和TIMESTAMP. YEAR 占用:1字节 取值范围:1901~2155 日期格 ...

  4. c mysql日期时间格式_mysql 日期和时间格式转换实现语句

    这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAY ...

  5. php mysql 日期时间_php Mysql日期和时间函数集合

    收集的比较全的Mysql日期和mysql时间函数 DATE_FORMAT(date,format) 根据format字符串格式化date值.下列修饰符可以被用在format字符串中: %M 月名字(J ...

  6. c mysql日期时间格式_mysql日期和时间类型

    TIME 类型 TIME 类型用于只需要时间信息的值,在存储时需要 3 个字节.格式为 HH:MM:SS.HH 表示小时,MM 表示分钟,SS 表示秒. TIME 类型的取值范围为 -838:59:5 ...

  7. java 时间类_Java日期和时间类简介

    Java 的日期和时间类位于 java.util 包中.利用日期时间类提供的方法,可以获取当前的日期和时间,创建日期和时间参数,计算和比较时间. Date 类 Date 类是 Java 中的日期时间类 ...

  8. c语言 时间函数,C 日期和时间函数

    学习C - C日期和时间函数 time.h标头声明产生时间和日期的函数. 获取时间值 返回时间值的最简单的函数具有以下原型: clock_t clock(void); 这个函数返回一些参考点后的处理器 ...

  9. java获取24小时制时间格式_java 日期格式时间24小时制

    按指定格式获取时间 import java.util.*; import java.text.*; public class TestDate { public static void main(St ...

最新文章

  1. article.app.php,【求助】修改app\portal\AdminArticle.php二次开发提交数据出错的疑问
  2. wpf custom control
  3. 1.8 循环神经网络的梯度消失-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 7 款顶级开源 BI(商务智能)软件和报表工具
  5. C++调用C#的dll
  6. win10一直卡在自动修复_分享:win10自动修复过程中无法正确启动怎么办?
  7. linux pgpgin pgpgout pswpin pswpout 说明
  8. 关于MFC下多线程,在线程中创建非模态对话框以及消息传递
  9. SpringBoot------拦截器Filter的使用
  10. Rayman的绝顶之路——Leetcode每日一题打卡6
  11. 把txt 转换成CHM的目录或Index
  12. Windows 10搭建SVN服务器
  13. 印刷机在纸厚发生变化时的压力调节
  14. 两张人脸图像比对ocr技术
  15. The container name /mysql is already in use by container
  16. 基于springboot的毕业设计管理系统
  17. 迅雷漫画下载 v1.0(绿色版) 附源码
  18. 责任链模式(Chain of Responsibility)
  19. 【PAT】PAT官网更新
  20. 2022年全球与中国低压陶瓷电容器行业发展趋势及投资战略分析报告

热门文章

  1. HTML+CSS+JS实现echarts图表炫光分布地图动画
  2. java echarts 散点图,echarts在地图上绘制散点图(任意点)
  3. mysql创建临时表 分页_Mysql 如何创建一张临时表
  4. linux 触摸屏测试源码_Linux触摸屏驱动
  5. Python编程及高级数据分析
  6. java注释的理解,java注解原理——记录一下自己的理解
  7. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
  8. vue、cnpm不是内部文件_安装了vue-loader vue-template-compiler成功后运行 vue-loader -V提示不是内部文件...
  9. Css内边距与外边距
  10. php 监听端口数据客户端ip_PHP做端口监听示例代码