python处理时间相关的方法
记录python处理时间的模块:time模块、datetime模块和calendar模块。
python版本:2.7
https://blog.csdn.net/songfreeman/article/details/50564504
在介绍模块之前,先说下以下几点:
1.时间通常有这几种表示方式:
a.时间戳:通常是从1970年1月1日00:00:00开始按秒计算的偏移量,如:1488520142.802
b.格式化的时间字符串:按指定的格式化字符来输出字符串形式的时间,如指定格式化字符为:'%Y-%m-%d %H:%M:%S',得到的时间字符串为:2017-03-03 13:51:34。格式化字符见图1.
c.以元组的形式表示,共9个元素。具体的元素见图2.
2.通用协调时UTC(Universal Time Coordinated)与格林尼治平均时GMT(Greenwich Mean Time)一样,都与英国伦敦的本地时间相同,是世界标准时间。中国为UTC+8
一、time模块
主要包含的函数:
time() —— 返回当前时间戳,浮点数形式,不接受参数。
gmtime() —— 将时间戳转换为UTC时间,元组形式,接受一个浮点型时间戳参数,默认值为当前时间戳。
localtime() —— 将时间戳转换为本地时间,元组形式,接受一个浮点型时间戳参数,默认值为当前时间戳。
ctime() —— 将时间戳转换为指定的字符串形式,接受一个浮点型时间戳参数,默认值为当前时间戳。
actime() —— 将时间元组格式转换为指定字符串形式,接受一个元组参数,默认值为localtime()返回值。
mktime() —— 将本地时间元组转换为时间戳,接受一个元组参数,必选。
strftime() —— 将时间元组以指定的格式转换为字符串形式,接受格式化字符串、时间元组,时间元组参数可选,默认为localtime()。
strptime() —— 将指定格式的时间字符串解析为时间元组,接受格式化字符串、字符串形式的时间,两个参数均为必选。
sleep() —— 延迟指定时间,接受整型、浮点型,单位为秒。
clock() —— 在Unix系统上,返回进程时间,用秒表示的时间戳;在Windows系统上,第一次调用返回的是进程运行的实际时间,第二次之后的调用,是自第一次调用以后到现在的运行时间。
tzset() —— 改变本地时区。(经测试该函数报错:该模块未包含该方法。具体原因尚未细究。)
(该图摘自网络,原图作者已无处可查)
常用的:
得到当前时间的格式化字符串:
将格式化字符串转换为时间戳:
二、datetime模块
除了用于获取时间,该模块对于时间的比较操作非常方便。直接上图上代码。
datetime.date.today()
datetime.datetime.now()
三、calendar模块
- import calendar
- c = calendar.TextCalendar(calendar.SUNDAY)
- c.prmonth(2016, 1)
- January 2016
- Su Mo Tu We Th Fr Sa
- 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
函数及描述
1. calendar.calendar(year, w=2, l=1, c=6, m=3)
返回一个多行字符串格式的year年年历。
2. calendar.firstweekday()
返回当前每周起始日期的设置。默认返回0,即星期一。
3. calendar.isleap(year)
闰年返回True,否则False。
4. calendar.leapdays(y1, y2)
返回y1到y2之间的闰年总数,包含y1,不包含y2。
5. calendar.month(year, month, w=2, l=1)
返回一个多行字符串格式的year年month月日历。
6. calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载一个星期。该月之外的日期都为0,该月之内的日期设为该日的日期,从1开始。
7. calendar.monthrange(year, month)
返回两个整数组成的元组,第一个是该月的第一天是星期几,第二个是该月的天数。(calendar.monthrange(year, month):
Returns weekday of first day of the month and number of days in month, for the specified year and month.——Python文档)
ps:此处计算星期几是按照星期一为0计算。
8. calendar.prcal(year, w=2, l=1, c=6)
等于print calendar.calendar(year)
9. calendar.prmonth(year, month)
同上。
10. calendar.setfirstweekday(weekday)
设置每周起始日期码。0(星期一)到6(星期日)
11. calendar.timegm(tupletime)
和time.gmtime相反,接收一个时间元组,返回该时刻的时间戳(计算机元年之后的秒数)
12. calendar.weekday(year, month, day)
返回给定日期的星期码,0(星期一)到6(星期日)。