时间模块(time与datetime)

一、time

时间分为三种格式:

1、时间戳:1970年1月1日00:00:00开始按秒计算的偏移量

  作用:用于时间间隔的计算

2、按照某种格式显示的时间:2020-03-30 11:11:11

  作用:用于展示时间

3、结构化的时间(struct_time)
  作用:用于单独获取时间的某一部分(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

 1 import time
 2 
 3 print(time.time())  # 时间戳1585551358.6356573
 4 
 5 print(time.strftime('%Y-%m-%d %X'))  #格式化时间,2020-03-30 14:58:07
 6 print(time.strftime('%Y-%m-%d %H-%M-%S %p'))# 格式化时间,2020-03-30 14-58-07 PM,%p显示上午下午
 7 
 8 res=time.localtime()  # 结构化的时间
 9 print(res)
10 print(res.tm_year)  # 获取时间的某一部分

 二、datetime

1 import datetime
2 
3 print(datetime.datetime.now())  # 2020-03-30 15:14:25.801331
4 
5 时间加减,以上面时间为准
6 print(datetime.datetime.now()+datetime.timedelta(days=7))  #2020-04-06 15:14:25.801331,7天后的时间,减法或day=-7则算的是7天前的时间
7 print(datetime.datetime.now()+datetime.timedelta(weeks=1))  # 2020-04-06 15:14:25.801331
8 print(datetime.datetime.now()+datetime.timedelta(hours=10))  # 2020-03-31 01:14:25.801331

 三、时间模块需要掌握的操作

1、时间格式的转换

struct_time->时间戳

1 import time
2 
3 res=time.localtime()  # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=15, tm_min=20, tm_sec=29, tm_wday=0, tm_yday=90, tm_isdst=0)
4 print(time.mktime(res))  # 1585552829.0

时间戳->struct_time

1 import time
2 
3 res=time.time()  # 1585552958.499538
4 print(time.localtime(res))  # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=15, tm_min=22, tm_sec=38, tm_wday=0, tm_yday=90, tm_isdst=0)

补充:世界标准时间与本地时间

1 import time
2 
3 # 差8小时
4 print(time.localtime())
5 print(time.gmtime()) # 世界标准时间,了解
6 print(time.localtime(333333333))
7 print(time.gmtime(333333333))

struct_time->格式化的字符串形式的时间

import time

s_time=time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))  # 2020-03-30 15:27:44

格式化的字符串形式的时间->struct_time

import time

print(time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S'))  # time.struct_time(tm_year=1988, tm_mon=3, tm_mday=3, tm_hour=11, tm_min=11, tm_sec=11, tm_wday=3, tm_yday=63, tm_isdst=-1)

真正需要掌握:format string<------>timestamp

format string--->struct_time--->timestamp(时间戳)

import time

struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time)

format string<---struct_time<---timestamp

res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp))

了解知识

1 import time
2 
3 print(time.asctime())  # Mon Mar 30 15:40:08 2020
4 
5 import datetime
6 
7 print(datetime.datetime.utcnow())  # 国际时间2020-03-30 07:40:08.035936
8 
9 print(datetime.datetime.fromtimestamp(333333))  # 时间戳转格式化时间

  

猜你喜欢

转载自www.cnblogs.com/BoyGc/p/12599029.html