您的位置:首页 > 编程语言 > Python开发

python 时间处理

2014-12-09 21:31 183 查看
        Python提供了time,datetime,calendar等模块对时间进行处理,time主要对时间进行操作,datetime主要对日期时间进行操作,而calendar主要对日历进行操作。

        time模块

        在python中,表示时间的方式主要有以下几种:1、时间戳,2、时间元组,3、格式化的时间字符串。

        时间戳就是某一时间距离时间纪元点的浮点类型时间偏移量,现在时间的时间纪元通常是1970年1月1日00:00:00,所以可以把时间戳理解为距离1970年1月1日00:00:00的时间偏移量。

        时间元组(struct_time)是python特有的表示时间的方法,共九个元素,下文将作详述。

        格式化字时间符串,很明显,就是为了更方便统一的记录时间而规定用于表示时间的字符串样式。

>>> #时间戳
>>> import time
>>> #time.time():当前时间距离epoch的时间偏移量
>>> time.time()
1419153780.369
>>> #time.mktime():参数是一个时间元组,参数为空是表示当前时间
>>> #注:time.mktime()的元组参数是本地时间计算的,不是UTC时间
>>> time.mktime(time.localtime())
1419153856.0
>>> #时间元组
>>> #time.localtime():参数是可选的浮点数,返回该浮点数时间偏移量对应的时间元组
>>> #参数为0或则缺省时返回当前本地时间
>>> time.localtime()
time.struct_time(tm_year=2014, tm_mon=12, tm_mday=21, tm_hour=17, tm_min=25, tm_sec=47, tm_wday=6, tm_yday=355, tm_isdst=0)
>>> #等效于time.localtime(time.time())
>>> time.localtime(time.time())
time.struct_time(tm_year=2014, tm_mon=12, tm_mday=21, tm_hour=17, tm_min=26, tm_sec=21, tm_wday=6, tm_yday=355, tm_isdst=0)
>>> #time.gmtime():参数和localtime相同,区别在于:
>>> #localtime()的参数是按本地时间计算
>>> #gmtime()的参数是按UTC(格林威治天文时间)计算
>>> time.gmtime()
time.struct_time(tm_year=2014, tm_mon=12, tm_mday=21, tm_hour=9, tm_min=32, tm_sec=45, tm_wday=6, tm_yday=355, tm_isdst=0)


        先解释下时间元组各个属性:

        


>>> #格式化时间字符串
>>> #time.asctime():将时间元组转化为'Sun Jun 20 23:21:05 1993'格式的字符串
>>> #参数为空时,等价于time.asctime(time.localtime())
>>> time.asctime()
'Sun Dec 21 17:52:53 2014'
>>> #time.ctime():将浮点型时间偏移量转化为'Sun Jun 20 23:21:05 1993'格式的字符串
>>> #参数为空时,等价于time.ctime(time.time())
>>> time.ctime()
'Sun Dec 21 17:58:04 2014'


        显然,不管是asctime()还是ctime()返回的格式都是固定的,想要按照我们自定义的格式返回,就要将时间格式化为字符串。

        时间和字符串之间的相互转化
        时间格式及其含义:
        


        
        
        时间和字符串之间的相互转化
>>> #时间转化为字符串
>>> #time.strftime(format[, t])将时间转化为字符串
>>> #format:时间格式
>>> #t:可选参数,时间元组,缺省时为当前时间元组
>>> time.strftime('%Y %m %d %H:%M:%S',time.localtime())
'2014 12 21 18:31:28'
>>> #如果要将时间戳转化为字符串,先得将时间戳转为化时间元组
>>>
>>> #字符串转化为时间
>>> #time.strptime(string[, format])将字符串转化为时间
>>> #string:时间字符串
>>> #format:时间格式,缺省时为:"%a %b %d %H:%M:%S %Y"
>>> time.strptime('2014 12 21 18:31:28','%Y %m %d %H:%M:%S')
time.struct_time(tm_year=2014, tm_mon=12, tm_mday=21, tm_hour=18, tm_min=31, tm_sec=28, tm_wday=6, tm_yday=355, tm_isdst=-1)
>>> #同样,如果要想将字符串转为为时间戳,还需将时间元组转化为时间戳


        关于time模块的时间操作先讲到这里……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: