4. time & datetime 时间模块

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 time

print(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
posted @ 2018-01-14 14:32  丢失固执  阅读(148)  评论(0编辑  收藏  举报