Python模块 | time模块

 

和时间有关系的我们就要用到时间模块。

表示时间的三种方式:

1时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。1970年1月1 是英国时间
2格式化的时间字符串(Format String): ‘1999-12-06’

  python中时间日期格式化符号:
  %y 两位数的年份表示(00-99)
  %Y 四位数的年份表示(000-9999)
  %m 月份(01-12)

  %H 24小时制小时数(0-23)
  %M 分钟数(00=59)
  %S 秒(00-59)

  %a 本地简化星期名称
  %b 本地简化的月份名称
  %d 月内中的一天(0-31)

 

3元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

import time  # 导入时间模块

# 时间戳
time.time()  # 加print后,1569239423.635975

# 时间字符串
time.strftime("%Y-%m-%d %X") # 2019-09-23 19:50:55
time.strftime("%Y-%m-%d %H-%M-%S")   # 2019-09-23 19-51-13 标准时间

# 时间元组: localtime将一个时间戳转换为当前时区的struct_time
print(time.localtime())  # time.struct_time(tm_year=2019, tm_mon=9, tm_mday=23, tm_hour=19, tm_min=51, tm_sec=13, tm_wday=0, tm_yday=266, tm_isdst=0)

几种格式之间的转换

import time

# 格式化时间 <---->  结构化时间
ft = time.strftime('%Y/%m/%d %H:%M:%S')    # 注意是大写的Y
print(ft)                                   # 2019/09/23 19:57:20
st = time.strptime(ft,'%Y/%m/%d %H:%M:%S')
print(st)                                   # time.struct_time(tm_year=2019, tm_mon=9, tm_mday=23, tm_hour=19, tm_min=57, tm_sec=20, tm_wday=0, tm_yday=266, tm_isdst=-1)

# 结构化时间 <---> 时间戳
import time
p = time.strptime('2015-8-8','%Y-%m-%d')
t = time.mktime(p)
print(t)        # 1438963200.0

t = time.time()
st = time.localtime(t)
print(st)# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=23, tm_hour=20, tm_min=2, tm_sec=48, tm_wday=0, tm_yday=266, tm_isdst=0)

 

asctime([t]) 函数
  该函数用于接收由 gmtime() 和 localtime() 函数返回的struct_time,并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。

  如果不传参数,直接返回当前时间的格式化串。

import time
time.asctime(time.localtime(1500000000))      # Fri Jul 14 10:40:00 2017
time.asctime()                                 #  Mon Sep 23 21:26:09 2019
print(time.strftime('%c'))                     #  Mon Sep 23 21:26:09 2019
print(time.ctime())                            #  Mon Sep 23 21:26:09 2019

ctime([ secs ])   

  用于把一个时间戳转换为time.asctime()的形式。如果未给参数  secs 或参数为  None,就会默认将  time.time() 作为参数。

print(time.ctime())                        # Mon Sep 23 21:30:31 2019
print(time.ctime(1500000000))             # Fri Jul 14 10:40:00 2017

 

计算时间差

import time

time1=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
time2=time.mktime(time.strptime('2017-09-12 11:00:06','%Y-%m-%d %H:%M:%S'))
diff_time=time2-time1
print(time1,time2,diff_time)                                #1505089800.0    1505185206.0     95406.0
struct_time=time.gmtime(diff_time)
print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,struct_time.tm_mday-1,
                               struct_time.tm_hour,struct_time.tm_min,struct_time.tm_sec))

输出结果:

  1505089800.0 1505185206.0 95406.0
  过去了0年0月1天2小时30分钟6秒

猜你喜欢

转载自www.cnblogs.com/Summer-skr--blog/p/12124018.html