python内置模块-time模块

time模块

time是用来和时间打交道的

time.sleep(n) 程序走到这里会等待n秒后再执行

三种时间格式

  • 2019-11-22、 2019.11.22(字符串),格式化时间–给人看的 time.strftime()

  • 1574413368.3275113 (浮点型),以秒为单位,时间戳时间–计算机计算用的,从1970-01-01 00:00:00这个时间开始的秒数 time.time()

print(time.time())  # 1574413368.3275113
  • 结构化时间 time.localtime(),作为时间戳和格式化的转换中间

print(time.localtime())
# time.struct_time(tm_year=2019, tm_mon=11, tm_mday=23, tm_hour=0, tm_min=32, tm_sec=2, tm_wday=5, tm_yday=327, tm_isdst=0)

time.time()

  • 显示浮点型的时间

time.strftime()

  • 显示格式化时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2019-11-22 17:17:54
print(time.strftime("%y-%m-%d %H:%M:%S"))  # 19-11-22 17:17:54
print(time.strftime("%c"))  # Fri Nov 22 17:17:54 2019

时间格式的相互转换

  • 格式化时间和时间戳时间之间不能互相转换,得通过接过话时间去转换

  • 时间戳–>字符串

    • 第一步:时间戳-结构化
    • 第二部:结构化-字符创
# 1.先把时间戳时间转换成结构化时间
print(time.localtime(1400000000))
    # (输出:time.struct_time(tm_year=2014, tm_mon=5, tm_mday=14tm_hour=0, tm_min=53, tm_sec=20, tm_wday=2, tm_yday=134, tm_isdst=0))
struct_time = time.localtime(1400000000)
# 2.再把结构化时间转换成字符串时间
print(time.strftime("%Y-%m-%d %H:%M:%S", struct_time))  # 输出:2014-05-14 00:53:20
  • 字符串–>时间戳

    • 第一步:字符创-结构化
    • 第二部:结构化-时间戳
# 字符串时间转换成时间戳时间 2019-01-01
# 1、先把字符串时间转换成结构化时间
struct_time = time.strptime("2019-01-01", "%Y-%m-%d")
# 这里需要两个参数:
# 第一个:字符串时间格式
# 第二个:把这个时间是怎么构成的格式给striptime
print(struct_time)  # 输出:time.struct_time(tm_year=2019, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=1, tm_isdst=-1)

# 2、再把结构化时间转换成时间戳时间
print(time.mktime(struct_time))  # 输出1546272000.0

几种时间格式的转换:

python内置模块-time模块_第1张图片
图片出自:https://www.cnblogs.com/Eva-J/articles/7228075.html#_label5

练习题:

  • 1、用函数的方式显示当前月1号的时间戳时间

def day1():
    """
    思路:先得到当前时间的年份和月份,然后再根据这年的这月的1号去取时间戳
    """
    import time
 
    year = time.strftime("%Y")  # 取到此时的年份
    month = time.strftime("%m")  # 取到此时的月份
    strtime = year + "-" + month + "-" + "1"  # 把本月1号的时间练成一个完成的字符串时间

    struct_time_day1 = time.strptime(strtime, "%Y-%m-%d")  # 字符串时间转换成结构化时间

    return time.mktime(struct_time_day1)  # 结构化时间转换成时间戳时间并返回

print(day1())
  • 2、计算时间差:2019年1月1日到2019年11月11日经历了多少时多少秒

"""
计算时间差:2019-1-1 22:12:01到2019-11-11 12:45:23经历了多少时多少分多少秒
思路:分别计算出两个时间的时间戳时间,然后用这个秒数相减,用这个差值来计算
"""

import time

# 1、计算2019-1-1 22:12:01的时间戳时间
struct_time1 = time.strptime("2019-1-1 22:12:01", "%Y-%m-%d %H:%M:%S")
time1 = time.mktime(struct_time1)

# 2、计算2019-11-11 12:45:23的时间戳时间
struct_time2 = time.strptime("2019-11-11 12:45:23", "%Y-%m-%d %H:%M:%S")
time2 = time.mktime(struct_time2)

sub_time = time2 - time1

sub_hour = divmod(sub_time, 3600)[0]
sub_minute = divmod(divmod(sub_time, 3600)[1], 60)[0]
sub_second = divmod(divmod(sub_time, 3600)[1], 60)[1]

print(int(sub_hour), int(sub_minute), int(sub_second))

你可能感兴趣的:(python模块,python,time模块)