python date and time - QLGQ/learning-python GitHub Wiki

Introduction

  • Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
  • Python提供了一个time和calendar模块可以用于格式化日期和时间。
  • 时间间隔是以秒为单位的浮点小数。
  • 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:

#!/usr/bin/python
# -*- coding:UTF-8 -*-

import time;   #引入time模块

ticks = time.time()
print "当前时间戳:", ticks

以上实例输出结果:

当前时间戳为:1459994552.51

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

Time Tuple

序号 字段
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是决定是否为夏令时的旗帜

上述也就是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(60或61是闰秒)
6 tm_wday 0到6(0是周一)
7 tm_yday 1到366(儒略历)
8 tm_isdst -1,0,1,-1是决定是否为夏令时的旗帜

Time Module

Time模块包含了一些内置函数,既有时间处理的,也有转换时间格式的:

序号 函数 描述
1 time.time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)
2 time.ctime([secs]) 作用相当于asctime(localtime(secs)),未给参数相当于asctime()
3 time.sleep(secs) 推迟调用线程的运行,secs指秒数
4 time.asctime([tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
5 time.localtime([secs]) 接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。

Calendar Module

序号 函数 描述
1 calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2 calendar.isleap(year) 是闰年返回True,否则为false。
3 calendar.firstweekday( ) 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。

Others

在Python中,其他处理日期和时间的模块还有: