zoukankan      html  css  js  c++  java
  • Python之time模块

    time模块

    • 是和时间相关操作的模块

    一、方法

    (1)等待

    • 使用time.sleep()方法
    import time
    time.sleep(60) #等待60秒

    (2)时间类型转换概念

    1)时间戳:从计算机诞生那天到现在过了多少秒

    2)格式化好的时间:20180915 14:08:53

    3)为什么要使用时间戳?

    如果使用格式化好的时间,想知道在当前时间的前60天的具体时间,就不能直接加减了,这时候使用时间戳更方便,因为时间戳是直接加减的。

    (3)获取当前的时间戳

    • 使用time.time()方法
    res=time.time() #获取当前的时间戳
    print(res)
    #结果为:1536992259.157
    #默认精确到毫秒,用的时候强制类型转换一下

    (4)获取当前格式化时间,并以一定的格式输出

    • 使用time.strftime()方法
    res=time.strftime('%y-m-%d')
    print(res) #结果:18-09-15
    res=time.strftime('%Y-%m-%d %H:%M:%S')
    print(res) #结果:2018-09-15 14:14:34 ,注意时间都用大写字母,月份用小写字母

    (5)把时间元组转成格式化好的时间

    • 使用time.strftime()方法
    res2=time.strftime('%Y-%m-%d',res) #res为传入的时间元组值
    print(res2) #结果为:1970-09-02

    (6)把格式化好的时间转成时间元组

    • 使用time.strptime()方法
    time_tuple=time.strptime('1992-01-02','%Y-%m-%d') #把格式化好的时间转成时间元组
    #注意.strptime()里面的变量,后面的格式必须跟前面传的字符串的格式保持一致
    print(time_tuple)
    #结果为:time.struct_time(tm_year=1992, tm_mon=10, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=276, tm_isdst=-1

    (7)把时间戳转成时间元组

    • 使用time.gmtime()方法,获取的是标准时区的时间元组
    res=time.gmtime('21098312')
    #结果为:time.struct_time(tm_year=1970, tm_mon=9, tm_mday=2, tm_hour=4, tm_min=38, tm_sec=32, tm_wday=2, tm_yday=245, tm_isdst=0)
     
    • 使用time.localtime()方法,获取的是当前时区的时间元组

    res=time.localime('21098312')

    (8)把时间元组转成时间戳

    • 使用time.mktime()方法
    print(time.mktime(time_tuple)) #结果为:694281600.0

    二、格式化好的时间转换成时间戳

    (1)步骤

    1)先将格式化好的时间转成时间元组

    2)再将时间元组转成时间戳

    (2)使用方法

    • 1)使用time.strptime()方法,把格式化好的时间转成时间元组
    time_tuple=time.strptime('1992-01-02','%Y-%m-%d') #把格式化好的时间转成时间元组
    #注意.strptime()里面的变量,后面的格式必须跟前面传的字符串的格式保持一致
    print(time_tuple)
    #结果为:time.struct_time(tm_year=1992, tm_mon=10, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=276, tm_isdst=-1)
    • 2)使用time.mktime()方法,将时间元组转成时间戳
    print(time.mktime(time_tuple)) #结果为:694281600.0

    (3)实际应用

    封装一个函数,将格式化好的时间转成时间戳。

    #格式化好的时间转时间戳,如果不传参数就返回当前时间的时间戳
    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)

    三、时间戳转成格式化好的时间

    (1)步骤

    1)先将时间戳转成时间元组

    2)再将时间元组转成格式化好的时间

    (2)使用方法

    • 1)使用time.gmtime()方法,把时间戳转成时间元组
    • 注意:time.gmtime()这个函数默认是以标准时区的时间为准的,如果不在标准时区,要使用time.localtime()这个函数
    res=time.gmtime('21098312')
    #结果为:time.struct_time(tm_year=1970, tm_mon=9, tm_mday=2, tm_hour=4, tm_min=38, tm_sec=32, tm_wday=2, tm_yday=245, tm_isdst=0)
    • 使用time.localtime()方法,把时间戳转成时间元组
    res=time.localtime(time.time()) #把时间戳转成时间元组,当前时区
    • 2)使用time.strftime()方法,将时间元组转成格式化好的时间
    res2=time.strftime('%Y-%m-%d',res)
    print(res2) #结果为:1970-09-02

    (3)实际应用

    封装一个函数,将时间戳转成转成格式化好的时间。

    #这个函数时用来把时间戳转成格式化好的时间
    #如果不传时间戳的话,就返回当前的时间
    def timstamp_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

    四、应用

    1、取50年后的时间:

    #如果要取到50年后的时间,就用当前的时间戳+50年的秒数,再使用这个函数
    fifty=str_to_timestamp()+(50*365*24*60*60)
    res=timestamp_to_strtime(fifty)
    print('50年后的时间是',res)

    2、取3天后的时间:

    three_after=str_to_timestamp()+(3*365*24*60*60)
    res1=timestamp_to_strtime(three_after)
    print('3天后的时间是',res)

    3、取3天前的时间:

    three_before=str_to_timestamp()-(3*24*3600)
    res=timestamp_to_strtime(three_before)
    print('3天前的时间是',res)
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    GCC内置函数
    父类子类的拷贝构造与赋值
    外传三 动态内存申请的结果
    外传二 函数的异常规格说明
    外传一 异常处理深度解析
    第69课 技巧,自定义内存管理
    第68课 拾遗,令人迷惑的写法
    第67课 经典问题解析五
    第66课 C++中的类型识别
    第65课 C++中的异常处理(下)
  • 原文地址:https://www.cnblogs.com/yiruliu/p/9750847.html
Copyright © 2011-2022 走看看