1. time 模块
1.1 获取当前时间戳
- 时间戳:从0逝去的1970年1月1日0时0分0秒,到所给定日期时间的秒数
- 时间戳是一个 浮点数
- 获取方式
import time
time.time()
1.2 获取时间元组
- 一般python时间函数将时间处理为9个数字的元祖
- 图解
序号 |
含义 |
属性 |
值 |
0 |
4位数 年 |
tm_year |
2008 |
1 |
月 |
tm_mon |
1 - 12 |
2 |
日 |
tm_mday |
1 - 31 |
3 |
小时 |
tm_hour |
0 - 23 |
4 |
分钟 |
tm_min |
0 - 59 |
5 |
秒 |
tm_sec |
0 - 61(60 或 61是闰秒) |
6 |
一周的第几日 |
tm_wday |
0 - 6 (0 是周日) |
7 |
一年的第几日 |
tm_yday |
1 - 366 (儒略历) |
8 |
夏令时 |
tm_isdst |
-1, 0, 1 -1是决定是否是夏令时的标记 |
import time
time.localtime([seconds])
* seconds 可选的时间戳,默认值为当前时间戳
print(localtime())
>>> time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=25, tm_sec=34, tm_wday=6, tm_yday=126, tm_isdst=0)
1.3 获取格式化的时间
- 秒 -> 可读时间
将 1525606536.934186
转为 Sun May 6 19:35:15 2018
import time
time.ctime([seconds])
eg.
t = time.time()
result = time.ctime(t)
print(result)
>>> Sun May 6 19:35:15 2018
- 时间元组 -> 可读时间
将 time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=38, tm_sec=20, tm_wday=6, tm_yday=126, tm_isdst=0)
转为 Sun May 6 19:35:15 2018
import time
time.asctime([p_tuple])
* p_tuple:可选的时间元组,默认当前时间元组
time_tuple = time.localtime()
result = time.asctime(time_tuple)
print(result)
>>> Sun May 6 19:38:20 2018
1.4 格式化日期字符串 < -- > 时间戳
- 时间元组 -> 格式化日期
- time.strftime(格式字符串,时间元组):sting + format + time
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
>>> 2017-09-02 17:21:00
- 格式化日期 -> 时间元组
- time.strptime()
pt = time.strptime("17-09-06 08:57:17", "%y-%m-%d %H:%M:%S")
t = time.mktime(pt)
格式符 |
表达 |
%y |
两位数的年份表示(00-99) |
%Y |
四位数的年份表示(000-9999) |
%m |
月份(01-12) |
%d |
月内中的一天(0-31) |
%H |
24小时制小时数(0-23) |
%I |
12小时制小时数(01-12) |
%M |
分钟数(00=59) |
%S |
秒(00-59) |
%a |
本地简化星期名称 |
%A |
本地完整星期名称 |
%b |
本地简化的月份名称 |
%B |
本地完整的月份名称 |
%c |
本地相应的日期表示和时间表示 |
%j |
年内的一天(001-366) |
%p |
本地A.M.或P.M.的等价符 |
%U |
一年中的星期数(00-53)星期天为星期的开始 |
%w |
星期(0-6),星期天为星期的开始 |
%W |
一年中的星期数(00-53)星期一为星期的开始 |
%x |
本地相应的日期表示 |
%X |
本地相应的时间表示 |
%Z |
当前时区的名称 |
1.5 获取当前 CPU 时间
- time.clock(),返回浮点数的秒数
- 一般用于统计代码执行时间
start = time.clock()
for i in range(0, 10000):
print(i)
end = time.clock()
print(end - start)
1.6 休眠 n 秒
- 推迟线程的执行,可简单理解为,让程序暂停
- time.sleep(secs)
while True:
result = time.strftime("%y===%m-%d %H:%M:%S", time.localtime())
print(result)
time.sleep(1)
2. calendar 模块
- 提供与日历相关功能,如:为给定的月份或年份,打印文本日历
2.1 获取某月日历
import calendar
c = calendar.month(2018, 5)
print(c)
>>>
May 2018
Mo Tu We Th Fr Sa Su
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
3. datetime 模块
- python 处理日期和时间的标准库
- 常用 datetime 类,及 date 类 和 time 类
- 可做计算之类的操作
3.1 获取当天日期
import datetime
n = datetime.datetime.now()
t = datetime.datetime.today()
print(n)
print(t)
3.2 单独获取当前的年月日时分秒
import datetime
t = datetime.datetime.today()
print(type(t))
print(t.year)
print(t.month)
print(t.day)
print(t.hour)
print(t.minute)
print(t.second)
3.3 计算 n 天之后的日期
import datetime
t = datetime.datetime.today()
result = t + datetime.timedelta(days=7)
print(t, result)
3.4 获取两个日期时间的时间差
import datetime
first = datetime.datetime(2017, 9, 2, 12, 00, 00)
second = datetime.datetime(2017, 9, 3, 12, 00, 00)
# print(first, type(first))
delta = second - first
print(delta, type(delta))
print(delta.total_seconds())
>>>
1 day, 0:00:00
86400.0