本文介绍python的标准库模块time的常见用法
时间模块time
- 导入时间模块
import time
- 得到时间戳,这是统计从1970年1月1日0点0分到现在经过了多少秒,一般用于加减法一起用,比如统计程序运行时间
#时间戳,得到从1970年1月1日0点0分到现在经过了多少秒 print(time.time()) #打印结果为1523764517.564663
- 得到结构化时间(当地时间),得到的是一个对象,包含当前年月日时分秒的信息。
#得到当前时间,结果是一个对象 print(time.localtime()) #打印结果为time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=12, tm_min=0, tm_sec=10, tm_wday=6, tm_yday=105, tm_isdst=0)
其中值得一说的是,tm_wday代表一周内的第几天,从0开始算,周日就是6,tm_yday就是在一年中的第几天
- 得到结构化时间(世界标准时间,UTC),得到的是一个对象,包含当前年月日时分秒的信息。
#得到结构化时间(世界标准时间,UTC),结果是一个对象 print(time.gmtime()) #打印结果为time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=4, tm_min=19, tm_sec=38, tm_wday=6, tm_yday=105, tm_isdst=0)
这个时间和我们北京时间差了8个时区,也就是8个小时
- 得到字符串时间,得到一个字符串,格式固定
#得到结构化时间,结果是字符串 print(time.asctime()) #打印结果为Sun Apr 15 12:35:08 2018
三种时间(时间戳、结构化时间、字符串时间)的相互转换
如下图所示,中介是结构化时间,然后调用相应的函数可以实现三种时间的互转,这种方法在转换字符串时间的时候可以自定义格式
#将结构化时间转换为时间戳 print(time.mktime(time.localtime())) #将结构化时间转换为字符串时间 print(time.strftime("%Y-%m-%d %X",time.localtime())) #其中分隔符可以自己定,%X 泛指时分秒 #将字符串时间转换为结构化时间 print(time.strptime("2018-4-15 12:32:59","%Y-%m-%d %X"))
当然如果自己不想自定义字符串时间的格式排布,可以使用以下方法得到一个固定格式的字符串时间,格式类似于“Sun Apr 15 12:35:08 2018”
除了time模块之外还有一个datetime模块可以生成更符合我们看的一种时间,如下代码所示
import datetime print(datetime.datetime.now()) #打印结果为2018-04-15 12:41:10.962991