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

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

  1. >>> from datetime import timedelta
  2. >>> a = timedelta(days=2, hours=6)
  3. >>> b = timedelta(hours=4.5)
  4. >>> c = a + b
  5. >>> c.days
  6. 2
  7. >>> c.seconds
  8. 37800
  9. >>> c.seconds / 3600
  10. 10.5
  11. >>> c.total_seconds() / 3600
  12. 58.5
  13. >>>
  14. 如果你想表示指定的日期和时间,先创建一个datetime 实例然后使用标准的数学运算来操作它们。比如:
  15. >>> from datetime import datetime
  16. >>> a = datetime(2012, 9, 23)
  17. >>> print(a + timedelta(days=10))
  18. 2012-10-03 00:00:00
  19. >>>
  20. >>> b = datetime(2012, 12, 21)
  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() 函数代替。但是,有一点需要注意的就是,它会在处理月份(还有它们的天数差距) 的时候填充间隙。看例子最清楚:

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

python: 基本的日期与时间转换的更多相关文章

  1. python时间戳、日期、时间转换

    1.str转时间戳 # 字符类型的时间 tss1 = '2013-10-10 23:40:00' # 转为时间数组 timeArray = time.strptime(tss1, "%Y-% ...

  2. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

  3. java日期和时间转换字符

    日期和时间转换字符 字符 描述 例子 c 完整的日期和时间 Mon May 04 09:51:52 CDT 2009 F ISO 8601 格式日期 2004-02-09 D U.S. 格式日期 (月 ...

  4. Python之基本的日期与时间转换 datetime、 dateutil模块

    简单举例datetime模块 from datetime import timedelta,datetime a = timedelta(days=2, hours=6) b = timedelta( ...

  5. Python中的日期和时间

    感觉C语言作为一门编程的入门语言还是很好的,相比较之下,Python为代表的一些语言,适合很多非计算机专业的编程入门学习. Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换 ...

  6. 不一样的日期、时间转换(moment.js)

    无意中遇到了一种很奇怪的日期格式,从接口中返回的日期是这样的,如 2018-02-06T11:59:22+08:00 .然而这却不是我们想要的,我们要的是这种,YYYY-MM-DD HH:mm:ss. ...

  7. Hive日期、时间转换:YYYY-MM-DD与YYYYMMDD;hh.mm.ss与hhmmss的相互转换

    思路 YYYY-MM-DD与YYYYMMDD:hh-mm-ss与hhmmss的相互转换有两种办法,第一种是利用UNIX时间戳函数,第二种是利用字符串拼接函数. YYYY-MM-DD与YYYYMMDD相 ...

  8. 19、Python标准库: 日期和时间

    一.time时间模块 import time 1 .时间戳   时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. time_stamp = tim ...

  9. Python学习--15 日期和时间

    获取当前时间 # coding: utf-8 from datetime import datetime now = datetime.now() print(now) print(now.strft ...

随机推荐

  1. SYN攻击处理

    针对SYN攻击的几个环节,提出相应的处理方法: 方式1:减少SYN-ACK数据包的重发次数(默认是5次): sysctl -w net.ipv4.tcp_synack_retries=3 sysctl ...

  2. JDBC连接oracle地址出错

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  3. 网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP

    TUN 设备 TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便得模拟网络行为.先来看看物理设备是如何工作的:

  4. TCP协议的基本规则和在Java中的使用

    TCP协议是面向连接的,相对于UDP协议来说效率较低,但是比较安全,数据不容易丢失.TCP协议类似打电话的过程,在一端拨号时必须等待对方回应,确定两端建立了连接通道才能传送信息. 在Java中TCP被 ...

  5. Android Activity与Fragment生命周期

  6. 教主泡嫦娥[有趣的dp状态设计]

    P1342 教主泡嫦娥 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 2012年12月21日下午3点14分35秒,全世界各国的总统以及领导人都已经汇聚在中国 ...

  7. Windows Phone 自定义一个启动画面

    1.新建一个UserControl <UserControl x:Class="LoadingPage.PopupSplash" xmlns="http://sch ...

  8. java定时器学习

    一.这个是利用jdk自带的Thread类的sleep方法实现定时执行任务. package tasker; import java.util.Date; public class tasker01 e ...

  9. linux设置安全连接设置(私钥)

    1.私钥制作工具:puttygen 连接工具:xshell和putty. 2.制作私钥和公钥 a.打开puttygen点击Generate生产公钥和私钥(鼠标需要晃动,进度条才会前进) b. 设置标签 ...

  10. Go Configure Support hot reloading.

    Go Configure – Josh Betz https://josh.blog/2017/04/go-configure Go Configure APRIL 27, 2017 # DEVELO ...