1) 时间表示方式
•时间戳(timestamp):表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
•结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
•格式化的时间字符串(Format String)
#时间戳
print(time.time()) # 1515911360.83#结构化时间
print(time.localtime()) # 本地时区的struct_time # time.struct_time(tm_year=2018, tm_mon=1, tm_mday=14, tm_hour=14, tm_min=29, tm_sec=20, tm_wday=6, tm_yday=14, tm_isdst=0)
print(time.gmtime()) # UTC时区的struct_time # time.struct_time(tm_year=2018, tm_mon=1, tm_mday=14, tm_hour=6, tm_min=29, tm_sec=20, tm_wday=6, tm_yday=14, tm_isdst=0)#格式化时间
print(time.strftime("%Y-%m-%d %X")) # 格式化的时间字符串:'2018-01-14 14:29:20'
print(time.asctime()) # Sun Sep 11 00:43:43 2016
print(time.ctime()) # 默认是当前时间time.time() Sun Sep 11 00:46:38 2016
print(time.ctime(time.time())) # Sun Sep 11 00:46:38 2016
2) 三种时间格式的转换
2.1 结构化时间与时间戳之间的转换
#a)结构化时间转为时间戳
print(time.mktime(time.localtime())) # 1515912340.0
print(time.mktime(time.gmtime())) # 1515883540.0#b)时间戳转为结构化时间
print(time.localtime(time.time())) # time.time()指的是当前时间,不传默认是当前时间,也可以是任意时间戳
print(time.localtime())
print(time.localtime(1515912195.81))print(time.gmtime(time.time()))
print(time.gmtime())
print(time.gmtime(1515912195.81))
2.2结构化时间与格式化时间之间的转换
#a)格式化时间转为结构化时间
time.strptime(time,format) # 该函数需传入2个参数,time是已给格式化时间,format是该时间的格式
print(time.strptime('2018-01-14 14:50:21', '%Y-%m-%d %X')) # time.struct_time(tm_year=2018, tm_mon=1, tm_mday=14, tm_hour=14, tm_min=50, tm_sec=21, tm_wday=6, tm_yday=14, tm_isdst=-1)#b)结构化时间转为格式化时间
time.strftime(format,time) # 该函数需传入2个参数,format是转化后的格式化时间格式,time是一个结构化时间,如不传入,默认是time.localtime()
print(time.strftime("%Y-%m-%d %X", time.localtime())) # 2018-01-14 14:53:42
print(time.strftime("%Y-%m-%d %X")) # 2018-01-14 14:53:42
3) time 常用命令
#根据不同格式输出格式化时间
print(time.strftime('%Y-%m-%d %X')) # 2018-01-13 14:48:58
print(time.strftime('%Y-%m-%d %H')) # 2018-01-13 14 # 时
print(time.strftime('%Y-%m-%d %M')) # 2018-01-13 48 # 分
print(time.strftime('%Y-%m-%d %S')) # 2018-01-13 58 # 秒
4) datatime 常用命令
import datetime
import timeprint(datetime.datetime.now()) # 2018-01-14 23:00:01.627881
print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 22018-01-14
print(datetime.datetime.now() ) # 2018-01-14 23:00:01.628381#时间计算
print(datetime.datetime.now() + datetime.timedelta(3)) # 当前时间+3天 2018-01-17 23:00:01.628381
print(datetime.datetime.now() + datetime.timedelta(-3)) # 当前时间-3天 2018-01-11 23:00:01.628381
print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 当前时间+3小时 2018-01-15 02:00:01.628381
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 当前时间+30分 2018-01-14 23:30:01.628381#时间替换
c_time = datetime.datetime.now()
print(c_time.replace(minute=3,hour=2)) # 时间替换 2018-01-14 02:03:01.628381