python系统内部,提供了多个模块关于时间的调用。time与datetime是常用的两个。
一、time模块:接口与C语言标准库time.h基本一致
(一)常用的方法
time.sleep(n) 休眠n秒
time.time() 时间戳,浮点数,1970年至今的秒数
time.ctime() 当前本地时间,字符串
time.localtime() 当前本地时间,时间对象
time.gmtime() 当前格林威治时间,时间对象
import time # 休眠 time.sleep(1) #时间戳:1970年至今的秒数sec print(time.time()) # OUTPUT : 1495089588.7636719 #当前本地时间 print(time.ctime()) # OUTPUT : Thu May 18 14:39:48 2017 #当前本地时间 print(time.localtime()) # OUTPUT : time.struct_time(tm_year=2017, tm_mon=5, tm_mday=18, tm_hour=14, tm_min=39, tm_sec=48, tm_wday=3, tm_yday=138, tm_isdst=0) #当前格林威治时间GMT print(time.gmtime()) # OUTPUT : time.struct_time(tm_year=2017, tm_mon=5, tm_mday=18, tm_hour=6, tm_min=39, tm_sec=48, tm_wday=3, tm_yday=138, tm_isdst=0)
(二)关于时间格式的转换
1、time.gmtime和time.localtime,与format搭配,自定义时间显示格式
2、time.strftime() 将时间对象转换成自定义格式的时间str
time.strptime() 将任意格式的时间str转换成时间对象
3、time.mktime() 将时间对象转换成时间戳
import time # 使用time.gmtime()和time.localtime(),与format搭配,可自定义时间显示格式 # GMT与东八区(北京时间)差8hours time_obj = time.gmtime(time.time()-86400) # 昨天彼时,GMT print('{}-{}-{}\t{}:{}:{}'.format( time_obj.tm_year,time_obj.tm_mon,time_obj.tm_mday,time_obj.tm_hour,time_obj.tm_min,time_obj.tm_sec)) # OUTPUT : 2017-4-17 7:42:30 time_obj = time.gmtime() # 当前时刻,GMT print('{}-{}-{}\t{}:{}:{}'.format( time_obj.tm_year,time_obj.tm_mon,time_obj.tm_mday,time_obj.tm_hour,time_obj.tm_min,time_obj.tm_sec)) # OUTPUT : 2017-4-18 7:42:30 time_obj = time.localtime() # 当前时刻,当地 print('{}-{}-{}\t{}:{}:{}'.format( time_obj.tm_year,time_obj.tm_mon,time_obj.tm_mday,time_obj.tm_hour,time_obj.tm_min,time_obj.tm_sec)) # OUTPUT : 2017-4-18 15:42:30 #-------------------------------------------------------------------- # 也可以使用time.strftime()将一个时间对象,转换成自定义的str时间格式 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) # OUTPUT : 2017-04-18 16:08:58 print(time.strftime('%m-%d-%Y %H:%M',time.gmtime())) # OUTPUT : 04-18-2017 08:10 #--------------------------------------------------------------------- # 使用time.strptime()将任意格式的时间str,转换成一个时间对象 print(time.strptime('04-18-2017 08:10','%m-%d-%Y %H:%M')) # OUTPUT : time.struct_time(tm_year=2017, tm_mon=4, tm_mday=18, tm_hour=8, tm_min=10, tm_sec=0, tm_wday=1, tm_yday=108, tm_isdst=-1) #----------------------------------------------------------------------- # 使用time.mktime()将时间对象转换成时间戳 print(time.mktime(time.localtime())) # 将当前时间对象转换成时间戳格式
二、datetime模块
datetime中常用的两个模块是datetime.date和datetime.datetime。
(一)datetime.date只涉及日期:年、月、日
datetime.date.today() 按‘年—月—日’的格式显示当前日期
datetime.date.fromtimestamp() 将时间戳转换成‘年--月--日’
datetime.date.ctime() 按字符串形式显示当前日期
import time import datetime # ------------------------------datetime.date # # 当前日期 # ret = datetime.date.today() # print(ret,type(ret)) # 2017-05-19 <class 'datetime.date'> # # # 将时间戳格式转换成‘年-月-日’的格式 # ret = datetime.date.fromtimestamp(time.time()) # print(ret,type(ret)) # 2017-05-19 <class 'datetime.date'> # # # 当前日期,字符串形式 # ret = datetime.date.ctime(datetime.date.today()) # print(ret,type(ret)) # Fri May 19 00:00:00 2017 <class 'str'>
(二)datetime.datetime包括全部的日期和时间
datetime.datetime.now() 按 ‘年--月--日 小时:分钟:秒钟’ 格式显示日期和时间
datetime.datetime.ctime() 按字符串形式显示当前日期和时间
# -----------------------------datetime.datetime import datetime # 当前日期和时间 ret = datetime.datetime.now() print(ret,type(ret)) # 2017-05-19 08:56:07.404296 <class 'datetime.datetime'> # 当前日期和时间,字符串形式 ret = datetime.datetime.ctime(datetime.datetime.now()) print(ret,type(ret)) # Fri May 19 08:58:39 2017 <class 'str'>
浙公网安备 33010602011771号