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 |