• python内建时间模块 time和datetime


    时间模块

    UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

    在Python中,通常有这几种方式来表示时间:
    1)时间戳,1970年1月1日之后的秒,即:time.time()
    2)格式化的时间字符串,即:time.strftime('%Y-%m-%d')
    3)结构化时间: 元组共九个元素,包含了:年、月、日、星期等... 返回struct_time的函数主要有gmtime(),localtime(),strptime()等.

    >>> import time
    
    >>> time.time()                        #返回时间戳                                            
    1547911729.4856396
    
    >>> time.localtime()                    #可加时间戳参数time.time()
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=29, tm_sec=42, tm_wday=5, tm_yday=19, tm_isdst=0)                
    
    >>> time.localtime()                    #可加时间戳参数time.time()
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=30, tm_sec=53, tm_wday=5, tm_yday=19, tm_isdst=0)
    
    >>> time.strftime('%Y-%m-%d')           # 默认当前时间
    '2019-01-19'
    
    >>> time.strftime('%Y-%m-%d', time.localtime())    # 默认当前时间
    '2019-01-19'
    
    >>> time.strptime('2019-01-19', '%Y-%m-%d')     #自定义时间
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=19, tm_isdst=-1)
                           
    
    >>> time.asctime()                          #返回时间格式
    'Sat Jan 19 23:33:21 2019'
    
    >>> time.localtime()                        #返回本地时间 的struct time对象格式
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=23, tm_min=34, tm_sec=8, tm_wday=5, tm_yday=19, tm_isdst=0)
    
    >>> time.asctime(time.localtime())           #返回时间格式
    'Sat Jan 19 23:35:03 2019'
    
    >>> time.ctime()                             #返回时间格式
    'Sat Jan 19 23:25:03 2019'
    
    >>> time.process_time()             #测量处理器运算时间,不包括sleep时间
    5.1948333
    
    #将日期字符串 转成 struct时间对象格式
    >>> string_2_struct = time.strptime("2019-01-19","%Y-%m-%d")
    >>> print(string_2_struct)
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=19, tm_isdst=-1)
    
    #将struct时间对象转成时间戳
    >>> struct_2_stamp = time.mktime(string_2_struct)
    >>> print(struct_2stamp)
    1547827200.0
    
    #将时间戳转为字符串格式
    
    # 1.将utc时间戳转换成struct_time格式
    >>> time.gmtime(time.time()-86640)
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=18, tm_hour=15, tm_min=38, tm_sec=29, tm_wday=4, tm_yday=18, tm_isdst=0)
    
    # 2.将utc struct_time格式转成指定的字符串格式
    
    >>> time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
    '2019-01-19 15:43:41'

    时间加减 

    >>> import time
    >>> import datetime
    
    >>> datetime.datetime.now()                                                      # 返回2019-01-20 00:03:39.547184 
    datetime.datetime(2019, 1, 20, 0, 3, 39, 547184)
    
    >>> datetime.date.fromtimestamp(time.time())                        # 时间戳直接转成日期格式2019-01-20
    datetime.date(2019, 1, 20)
    
    >>> datetime.datetime.now() + datetime.timedelta(3)     # 当前时间+3天
    datetime.datetime(2019, 1, 23, 0, 4, 10, 418950)
    
    >>> datetime.datetime.now() + datetime.timedelta(-3)     # 当前时间-3天
    datetime.datetime(2019, 1, 17, 0, 4, 25, 591817)
    
    >>> datetime.datetime.now() + datetime.timedelta(hours=3)   # 当前时间+3小时
    datetime.datetime(2019, 1, 20, 3, 4, 41, 192710)
    
    >>> datetime.datetime.now() + datetime.timedelta(minutes=30)  # 当前时间+30分
    datetime.datetime(2019, 1, 20, 0, 34, 50, 179224)
    
    >>> c_time  = datetime.datetime.now()                         # 时间替换
    >>> c_time.replace(minute=3,hour=2)
    datetime.datetime(2019, 1, 20, 2, 3, 12, 677511)

    格式参照

    %a    本地(locale)简化星期名称    
    %A    本地完整星期名称    
    %b    本地简化月份名称    
    %B    本地完整月份名称    
    %c    本地相应的日期和时间表示    
    %d    一个月中的第几天(01 - 31%H    一天中的第几个小时(24小时制,00 - 23%I    第几个小时(12小时制,01 - 12%j    一年中的第几天(001 - 366%m    月份(01 - 12%M    分钟数(00 - 59%p    本地am或者pm的相应符    一    
    %S    秒(01 - 61)    二    
    %U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。    三    
    %w    一个星期中的第几天(0 - 6,0是星期天)    三    
    %W    和%U基本相同,不同的是%W以星期一为一个星期的开始。    
    %x    本地相应日期    
    %X    本地相应时间    
    %y    去掉世纪的年份(00 - 99%Y    完整的年份    
    %Z    时区的名字(如果不存在为空字符)    
    %%    ‘%’字符

    时间关系转换

    参考文档:

                    http://blog.51cto.com/egon09/1840425

  • 相关阅读:
    边缘提取二—实例 行远
    Exp2后门原理与实践
    Exp3免杀原理
    PostgreSQL 查询被锁阻塞的连接
    PostgreSQL中的数组与Any
    [Contest on 2022.4.12] 我又来水博客了
    2022 省选游记
    [省选联考 2020 A 卷] 组合数问题
    [学习笔记] 斯特林数
    LOJ 6515 「雅礼集训 2018 Day10」贪玩蓝月
  • 原文地址:https://www.cnblogs.com/saneri/p/10293778.html
Copyright © 2020-2023  润新知