Python note 500 - datetime
Python 标准库中的 datetime 模块提供了各种对日期和时间的处理方法。
基本操作
1 | In [1]: import datetime |
转义符说明:
| 转义符 | 说明 |
|---|---|
| %a | 本地简化星期名称 |
| %A | 本地完整星期名称 |
| %b | 本地简化的月份名称 |
| %B | 本地完整的月份名称 |
| %c | 本地相应的日期表示和时间表示 |
| %d | 月内中的一天(0-31) |
| %H | 24小时制小时数(0-23) |
| %I | 12小时制小时数(01-12) |
| %j | 年内的一天(001-366) |
| %m | 月份(01-12) |
| %M | 分钟数(00-59) |
| %p | 本地A.M.或P.M.的等价符 |
| %S | 秒(00-59) |
| %U | 一年中的星期数(00-53)星期天为星期的开始 |
| %w | 星期(0-6),星期天为星期的开始 |
| %W | 一年中的星期数(00-53)星期一为星期的开始 |
| %x | 本地相应的日期表示 |
| %X | 本地相应的时间表示 |
| %y | 两位数的年份表示(00-99) |
| %Y | 四位数的年份表示(000-9999) |
| %Z | 当前时区的名称 |
| %% | %号本身 |
Locale 的问题
在使用 strftime 和 strptime 时要注意 locale ,不同的 locale
打出来的是不一 样的。同理,在使用 strptime 的时候也是如此,否则就会出错:
1 | In [1]: import datetime, locale |
时区转换
首先利用 datetime 中提供的 utcnow() 方法获取到当前UTC时间:
1 | In [1]: from datetime import datetime |
此时 tzinfo 为 None:
1 | In [5]: from pytz import timezone |
要转换为其他时区,则以此类推。
在 Django 中转换时区:
1 | In [1]: from django.utils.timezone import utc |
程序暂停
函数原型: time.sleep(secs) ,secs 参数代表暂停的秒数。示例:
1 | import random |