python日期和时间介绍处理及其操作详解 – Python入门开发教程

上一章Python教程请查看:python字典dictionary类型用法及其操作函数
Python程序可以以多种方式处理日期和时间,在日期格式之间进行转换是计算机的常见任,Python的时间和日历模块帮助跟踪日期和时间。
1、计算时间滴答数时间间隔是浮点数,以秒为单位,从1970年1月1日凌晨12点(纪元)开始,时间上的特定瞬间用秒表示。
Python中有一个流行的时间模块,它提供了处理时间和在表示之间进行转换的函数,time()函数返回自1970年1月1日(epoch)凌晨12点起的当前系统时间。

#!/usr/bin/python import time; # 这需要包含时间模块。ticks = time.time() print "自1970年1月1日凌晨12点以来的滴答次数:", ticks

日期运算很容易用刻度表示,但是纪元之前的日期不能用这种形式表示,远将来的日期也不能用这种方式表示——UNIX和Windows的截止时间是2038年。
2、时间元组Python的许多时间函数将时间处理为9个数字的元组,如下所示:
索引 属性
0 4个数字的年份 2008
1 1到12
2 1到31
3 小时 0到23
4 分钟 0到59
5 0到61 (60或61是跳跃秒)
6 天的周 0到6 (0是星期一)
7 年里的一天 1到366
8 夏令时 – 1,0,1, -1表示库决定DST
上面的元组等价于struct_time结构,该结构具有以下属性:
索引 属性
0 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
6 tm_wday 0到6 (0为星期一)
7 tm_yday 1到366
8 tm_isdst – 1,0,1, -1表示库决定DST
3、获取当前时间要将时间瞬间从历元浮点值开始的一秒转换为时间元组,需要将浮点值传递给一个函数(例如localtime),该函数返回一个包含所有9个有效项的时间元组。
#!/usr/bin/python import time; localtime = time.localtime(time.time()) print "Local current time :", localtime

4、获取格式化的时间你可以根据你的需求格式化任何时间,但是以可读格式获得时间的简单方法是asctime()?
#!/usr/bin/python import time; localtime = time.asctime( time.localtime(time.time()) ) print "Local current time :", localtime

5、获取一个月的日历日历模块提供了各种方法来处理年历和月历,在这里我们打印一个特定月份(2008年1月)的日历:
#!/usr/bin/python import calendarcal = calendar.month(2008, 1) print "日历:" print cal

6、时间模块Python中有一个流行的时间模块,它提供处理时间和在表示之间转换的函数。这里列出了所有可用的方法
编号 函数和描述
1 time.altzone 本地DST时区的偏移,在UTC以西以秒为单位,如果定义了偏移的话。如果当地的DST时区在UTC以东(如西欧,包括英国),则为负。只在日光非零时使用。
2 time.asctime([tupletime]) 接受一个时间元组并返回一个可读的24个字符的字符串,如“Tue Dec 11 18:07:14 2008”。
3 time.clock( ) 以浮点数(秒)返回当前CPU时间。衡量计算成本的不同方法,时间的价值。时钟比时间更有用。
4 time.ctime([secs]) 比如asctime(localtime(secs)),没有参数就像asctime()
5 time.gmtime([secs]) 接受从纪元开始以秒为单位表示的瞬间,并返回一个带有UTC时间的时间元组t。注:t。tm_isdst总是0
6 time.localtime([secs]) 接受自纪元以来以秒为单位表示的瞬间,并返回一个包含本地时间(t)的时间元组t。tm_isdst是0还是1,取决于DST是否根据本地规则应用于瞬间秒)。
7 time.mktime(tupletime) 接受以本地时间表示的时间元组的瞬时值,并返回自epoch以来以秒表示的瞬时值的浮点值。
8 time.sleep(secs) 挂起调用时间为秒的线程。
9 time.strftime(fmt[,tupletime]) 接受在本地时间中表示为时间元组的瞬时值,并返回由字符串fmt指定的表示瞬时值的字符串。
10 time.strptime(str,fmt=’ %a %b %d %H:%M:%S %Y’ ) 根据格式字符串fmt解析str,并以时间元组格式返回瞬时值。
11 time.time( ) 返回当前时间瞬间,这是自epoch以来的浮点秒数。
12 time.tzset() 重置库例程使用的时间转换规则。环境变量TZ指定这是如何完成的。
让我们简单地过一遍这些函数
时间模块有以下两个重要的特性
编号 属性和描述
1 time.timezone 时间属性。时区是指从UTC(美洲的> )到当地时区(不包括DST)的秒数偏移量; < =0在大多数欧洲,亚洲,非洲)。
2 time.tzname tzname是一对与地区相关的字符串,它们分别是没有DST和有DST的本地时区的名称。
7、日历模块calendar模块提供与日历相关的功能,包括打印给定月份或年份的文本日历的功能。
默认情况下,日历以周一为一周的第一天,以周日为最后一天。要改变这一点,请调用calendar.setfirstweekday()函数。
下面是calendar模块提供的函数列表
编号 方法和说明
1 calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串,该字符串带有一个year year格式的日历,该日历被格式化为三列,用c空格分隔。w是每个日期的字符宽度; 每一行的长度是21*w+18+2*c。l是每周的行数。
2 calendar.firstweekday( ) 返回每周开始的工作日的当前设置。默认情况下,首次导入日历时,这是0,表示星期一。
3 calendar.isleap(year) 如果年份是闰年,返回True; 否则false。
4 calendar.leapdays(y1,y2) 返回范围内年份的闰日总数(y1,y2)。
5 calendar.month(year,month,w=2,l=1) 返回一个多行字符串,其中包含一个日历,表示某年的某月,每周一行加上两行标题行。w是每个日期的字符宽度; 每一行的长度是7*w+6。l是每周的行数。
6 calendar.monthcalendar(year,month) 返回一个int列表的列表。每个子列表表示一个星期。年月日为0; 年月日为0; 一个月中的天数被设置为每个月的第一天或以上。
7 calendar.monthrange(year,month) 返回两个整数。第一个是年月日的工作日代码; 第二个是一个月的天数。平日代码为0(星期一)至6(星期日); 月数是1到12。
8 calendar.prcal(year,w=2,l=1,c=6) 类似打印calendar.calendar (w, l, c)。
9 calendar.prmonth(year,month,w=2,l=1) 类似calendar.month(year,month,w,l).
10 calendar.setfirstweekday(weekday) 设置每周的第一天到工作日代码工作日。平日代码是0(星期一)到6(星期日)。
11 calendar.timegm(tupletime) 时间的倒数。gmtime:接受时间元组形式的时间瞬间,并返回与自epoch以来的浮点秒数相同的瞬间。
12 calendar.weekday(year,month,day) 返回给定日期的工作日代码。平日代码为0(星期一)至6(星期日); 月数是1(1月)到12(12月)。
8、其他模块及功能【python日期和时间介绍处理及其操作详解 – Python入门开发教程】如果你感兴趣,那么在这里你可以找到一系列其他重要的模块和函数,可以在Python中使用日期和时间
  • datetime模块
  • pytz模块
  • dateutil模块

    推荐阅读