time 模块

time 模块: 与时间相关的模块

 

时间分为三类:时间戳,结构化,格式化的字符串时间。

 

1)、时间戳: 从1970-1-01  00:00:00开始到现在的秒数

# -*-coding:utf-8 -*-

import time

print(time.time())

a = time.time()
print(a)

结果:
1540727377.488626
1540727377.488626

  

2)、结构化: 返回的是一个对象,其中包含一个元组,里面是每个时间的值

(1):localtime 

a = time.time()
print(a)
b = time.localtime(a)
print(b)

结果:
1540727966.660054
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=19, tm_min=59, tm_sec=26, tm_wday=6, tm_yday=301, tm_isdst=0)

 

a = time.time()
print(a)
b = time.localtime(a)
print(b.tm_year)  #单独获取某个时间——值(属性)

结果:
1540728162.9470487
2018

 

(2): gmtime  世家统一时间 比北京时间晚8小时。

a = time.time()
print(a)
l = time.localtime(a)
print(l)

b = time.gmtime(a)
print(b)

结果:
1540728352.4624097
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=20, tm_min=5, tm_sec=52, tm_wday=6, tm_yday=301, tm_isdst=0)
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=12, tm_min=5, tm_sec=52, tm_wday=6, tm_yday=301, tm_isdst=0)

 

3)、格式化的字符串时间:

(1):strftime

a = time.time()
print(a)
l = time.localtime(a)

b = time.strftime('%Y %m %d',l)
print(b) b1
= time.strftime('%Y %m %d %H:%M:%S',l) print(b1) 结果: 1540729599.7453313
2018 10 28 2018 10 28 20:26:39

# 格式化时间 不能直接对 时间戳进行

a = time.time()
print(a)

b1 = time.strftime('%Y %m %d %H:%M:%S',a)
print(b1)

结果:
Traceback (most recent call last):
1540729991.8619258
  File "F:/练习/草稿.py", line 12, in <module>
    b1 = time.strftime('%Y %m %d %H:%M:%S',a)
TypeError: Tuple or struct_time argument required

 

三种格式之间的相互转换

(1)时间戳转为格式化:

print(time.localtime(a))

 

(2)结构化转字符串:

a = time.time()
b1 = time.localtime(a)
b = time.strftime('%Y %m %d %H:%M:%S',b1)

(3)字符串转结构化:

a = time.time()

b1 = time.localtime(a)

a = time.time()
b1 = time.localtime(a)

b = time.strftime('%Y %m %d %H:%M:%S',b1)
print(b)

l = time.strptime(b, '%Y %m %d %H:%M:%S') #----
print(l)

结果:
2018 10 28 20:50:10
time.strtime.asctime(time.localtime())0, tm_mday=28, tm_hour=20, tm_min=50, tm_sec=10, tm_wday=6, tm_yday=301, tm_isdst=-1)

(4):结构化转时间戳

a = time.time()

b1 = time.localtime(a)

a = time.time()
b1 = time.localtime(a)
b = time.strftime('%Y %m %d %H:%M:%S',b1)


l = time.strptime(b, '%Y %m %d %H:%M:%S')
print(l)

h = time.mktime(l)
print(h)

结果:
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=28, tm_hour=20, tm_min=53, tm_sec=21, tm_wday=6, tm_yday=301, tm_isdst=-1)
1540731201.0

总结:

转换方式如下图:

 

格林威治时间:

print(time.asctime(time.localtime(60*60*24)))
print(time.ctime(60*60*24))
结果:
Fri Jan  2 08:00:00 1970
Fri Jan  2 08:00:00 1970

 

datetime: #这是一个对 时间 进行处理的包

#获取当前详细时间:
print(datetime.datetime.now())

结果
2018-10-28 21:15:31.214708
#获取当前 年 时间:
print(datetime.datetime.now().year)

结果:
2018
#替换时间某一属性的值:
t = datetime.datetime.now()
print(t)
t1 = t.replace(year=2020)
print(t1)

结果:
2018-10-28 21:19:34.595849
2020-10-28 21:19:34.595849
#时间差——:
t = datetime.timedelta(weeks=1)  #获取一周时间
print(t)
t1 = datetime.datetime.now()  #获取当前时间
print(t1)
print(t+t1)    # 7天后的时间
结果:
7 days, 0:00:00 2018-10-28 21:22:08.941522
2018-11-04 21:22:08.941522

 

posted @ 2018-10-28 21:26  萤huo虫  阅读(138)  评论(0编辑  收藏  举报