首页 > 技术文章 > python处理时间相关的方法

klb561 原文

记录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

 格式化字符    元组的9个元素

一、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模块

calendar是一个定义了一个日历类,,封装了一个月或年的日期和星期,另外,也可以展示文本日历和HTML日历的格式输出
[python] view plain copy
 
  1. import calendar  
  2.   
  3. c = calendar.TextCalendar(calendar.SUNDAY)  
  4. c.prmonth(2016, 1)  
  5.   
  6.     January 2016  
  7. Su Mo Tu We Th Fr Sa  
  8.                 1  2  
  9.  3  4  5  6  7  8  9  
  10. 10 11 12 13 14 15 16  
  11. 17 18 19 20 21 22 23  
  12. 24 25 26 27 28 29 30  
  13. 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(星期日)。

推荐阅读