一、time
>>> time.time() 1446193516.198661
返回的是一个float类型的数值,计算从1970年1月1日0时0分0秒到当前时间的秒偏移。
>>> time.localtime() time.struct_time(tm_year=2015, tm_mon=10, tm_mday=30, tm_hour=16, tm_min=25, tm_sec=45, tm_wday=4, tm_yday=303, tm_isdst=0) >>> time.localtime().tm_year 2015 >>> time.localtime(144613352) time.struct_time(tm_year=1974, tm_mon=8, tm_mday=2, tm_hour=2, tm_min=22, tm_sec=32, tm_wday=4, tm_yday=214, tm_isdst=0)
返回的是time.struct_time类型的元组,可以通过关键字引用。也可以手动输入秒偏移量。
>>> time.gmtime() time.struct_time(tm_year=2015, tm_mon=10, tm_mday=30, tm_hour=8, tm_min=32, tm_sec=2, tm_wday=4, tm_yday=303, tm_isdst=0)
与localtime的使用方法一样,返回的是0时区的时间,即东八区减8小时。
>>> t = time.localtime() >>> time.mktime(t) 1446194114.0
将strct_time转换成时间戳。
>>> time.sleep(3)
即sleep。
>>> time.clock()
上一次调用到现在运行的时间。
>>> time.asctime() 'Fri Oct 30 16:45:20 2015'
产生这样的时间格式,同样也支持自传秒数。
>>> time.ctime(time.time()) 'Fri Oct 30 16:48:17 2015'
将时间戳转换成asctime模式。
>>> time.strftime("%Y-%m-%d %X", time.localtime()) '2015-10-30 16:51:36'
格式化字符串,可以将str_time或者时间元组格式化成自己需要的时间模式,类似date,具体的就不细写了。
二、datetime
>>> datetime.datetime.now() datetime.datetime(2015, 12, 8, 23, 38, 41, 653512) >>> timenow = datetime.datetime.now() >>> type(timenow) <type 'datetime.datetime'> >>> timenow.day 8 >>> timenow.hour 23
获得当前的datetime,可以索引对应的值。
>>> datetime.date.today() datetime.date(2015, 12, 8) >>> datetoday = datetime.date.today() >>> datetoday datetime.date(2015, 12, 8) >>> datetoday.year 2015
获得当前的date,可以索引对应的值。
>>> datetime.datetime.now() datetime.datetime(2015, 12, 8, 23, 43, 39, 820130) >>> datetime.datetime.now() + datetime.timedelta(days=1) datetime.datetime(2015, 12, 9, 23, 44, 19, 835489) >>> datetime.datetime.now() - datetime.timedelta(days=3) datetime.datetime(2015, 12, 5, 23, 44, 28, 124337)
明天,三天前。
>>> (datetime.datetime(2015,12,9,0,0,0) - datetime.datetime.now()).total_seconds() 750.895672
2个时间点的时间差。
三、几种关系之间的转换
datetime->string
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2015-12-08 23:53:17'
string->datetime
>>> datetime.datetime.strptime("2015-12-08 22:22:22","%Y-%m-%d %H:%M:%S") datetime.datetime(2015, 12, 8, 22, 22, 22)
datetime->timetuple
>>> datetime.datetime.now().timetuple() time.struct_time(tm_year=2015, tm_mon=12, tm_mday=8, tm_hour=23, tm_min=58, tm_sec=23, tm_wday=1, tm_yday=342, tm_isdst=-1)
timetuple->datetime
需要从timetuple=>timestamp=>datetime
datetime->date
>>> datetime.datetime.now().date() datetime.date(2015, 12, 9)
date->datetime
>>> today = datetime.date.today() >>> datetime.datetime.combine(today,datetime.time()) datetime.datetime(2015, 12, 9, 0, 0)
timestamp->datetime
>>> datetime.datetime.fromtimestamp(time.time()) datetime.datetime(2015, 12, 9, 0, 7, 56, 176283)
datetime->timestamp
>>> now = datetime.datetime.now() >>> timestamp = time.mktime(now.timetuple()) >>> timestamp 1449590935.0