【9】python模块:time

timetime模块提供各种时间相关的功能,与时间相关的模块有:time,datetime,calendar等。

时间有三种表示方式,一种是时间戳、一种是格式化时间、一种是时间元组。时间戳和格式化时间的相互转化,都需要先转化为时间元祖。

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

import time #导入time模块

time.sleep(30) #等待30秒
time.strftime('%Y-%m-%d %H:%M:%S') #当前的格式化时间
time.time()#返回当前的时间戳

1、两种时间格式的转化

(1)格式化好的时间---->时间元组---->时间戳

time_tuple = time.strptime('2038-08-29 19:23:59','%Y-%m-%d %H:%M:%S')#格式化好的时间-->时间元组,前面写要转化的时间,后面该时间的的格式
time.mktime(time_tuple)#时间元组-->时间戳

(2)时间戳---->时间元组---->格式化好的时间

# 时间戳-->时间元组,有三种写法
res=time.gmtime(318915696)#时间戳---->时间元组,自己定义的时间
res=time.gmtime(time.time())#时间戳---->时间元组,接收时间戳,并返回格林威治天文时间下的时间元组。
res=time.localtime(time.time())#时间戳---->时间元组,当前时间,当前时区

# 时间元组---->格式化时间
time.strftime('%Y-%m-%d %H:%M:%S',res)

2、封装函数

#封装函数:格式化时间-->时间戳
def str_to_timestamp(time_str=None,format='%Y%m%d%H%M%S'): #给默认值,如果传来的有值就不用默认值
    #格式化好的时间转时间戳的
    #不传参数的话返回当前的时间戳
    if time_str:#如果有值
        time_tuple = time.strptime(time_str, format)
        timestamp = time.mktime(time_tuple)
    else:#如果传进来的没有值
        timestamp = time.time()#那就返回当前时间戳
    return int(timestamp)#转化成int格式去掉小数点

print(str_to_timestamp())#会返回当前的时间戳
print(str_to_timestamp('20391123175123'))#不传格式
print(str_to_timestamp('2013-08-09','%Y-%m-%d'))#传格式
#封装函数:时间戳-->格式化时间
def timestamp_to_strtime(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    #这个函数是用来把时间戳转成格式化好的时间
    #如果不传时间戳的话,那么就返回当前的时间
    if timestamp:#如果传了时间戳,那么转成格式化好的时间
        time_tuple = time.localtime(timestamp)
        str_time = time.strftime(format,time_tuple)
    else:#如果没有传,就返回当前格式化好的时间
        str_time = time.strftime(format)
    return str_time

3、练习:怎么取3天前的当前时间

提示: 用当前的时间戳-3天的秒数,时间戳转成格式化好的时间

five = str_to_timestamp() - (3*24*60*60)#当前时间戳-3天的秒数
res = timestamp_to_strtime(five)
print('50年后的时间是',res)
原文地址:https://www.cnblogs.com/haifeima/p/9724195.html