zoukankan      html  css  js  c++  java
  • 模块之时间模块与日期模块详解

    Python中常见的处理时间的模块

    • time:处理时间的模块,如获取时间戳,格式化日期等

    • datetime:date和time的结合体,处理日期和时间

    • calendar:日历相关的模块,如:处理年历/月历

    time模块介绍

    时间戳: 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。

    import time
    
    print(time.time())

    格式化时间字符串: 按照某种格式显示的时间

    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    print(time.strftime('%Y-%m-%d %X'))
    样式 含义
    %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 时区的名字(如果不存在为空字符)
    %% ‘%’字符

    结构化时间: 按照元组的方式显示的时间

    print(time.localtime())

    索引(Index)

    属性(Attribute)

    值(Values)

    0

    tm_year(年)

    比如2020

    1

    tm_mon(月)

    1 - 12

    2

    tm_mday(日)

    1 - 31

    3

    tm_hour(时)

    0 - 23

    4

    tm_min(分)

    0 - 59

    5

    tm_sec(秒)

    0 - 61

    6

    tm_wday(weekday)

    0 - 6(0表示周日)

    7

    tm_yday(一年中的第几天)

    1 - 366

    8

    tm_isdst(是否是夏令时)

     默认为-1

    三种时间格式之间的转化

    # 时间格式的转化
    import time
    
    # 结构化时间 -> 时间戳
    s_time = time.localtime()
    print(time.mktime(s_time))
    
    # 时间戳 -> 结构化时间
    tp_time = time.time()
    print(time.localtime(tp_time))
    
    # 世界标准时间: 比localtime差8小时
    print(time.gmtime())
    
    # 结构化时间 -> 格式化字符串形式的时间
    s_time = time.localtime()
    print(time.strftime('%Y-%m-%d %X', s_time))
    
    # 格式化字符串形式的时间 -> 格式化时间
    print(time.strptime('1988-03-03 11:11:11', '%Y-%m-%d %X'))

     案例:

    # format string -> struct_time -> timestamp
    struct_time = time.strptime('1988-03-03 11:11:11', '%Y-%m-%d %X')
    timestamp = time.mktime(struct_time) + 7 * 86400
    print(timestamp)
    
    # format string <- struct_time <= timestamp
    res = time.strftime('%Y-%m-%d %X', time.localtime(timestamp))
    print(res)

    datetime模块介绍

    1. datetime模块中常见的类

    • datetime.date:处理日期
    • datetime.time:处理时间
    • datetime.datetime:处理日期和时间
    • datetime.timedelta:处理时间差

    2. 常见格式之间的转化

    import time, datetime
    
    # 时间戳 --> datetime时间格式
    datetime_type = datetime.datetime.fromtimestamp(time.time())
    print(type(datetime_type))  # <type 'datetime.datetime'>
    
    # datetime时间格式 --> 日期字符串
    datetime_format = datetime_type.strftime("%Y/%m/%d %H:%M:%S")
    print(datetime_format)
    
    # 日期字符串 --> datetime时间格式
    datetime_type = datetime.datetime.strptime('2019/01/30 16:44:01', '%Y/%m/%d %H:%M:%S')
    print type(datetime_type)  # <type 'datetime.datetime'>
    
    # datetime时间格式 --> 时间元组格式(time.struct_time) --> 时间戳
    datetime_type_to_timestamp = int(time.mktime(datetime_type.timetuple()))
    print(datetime_type_to_timestamp)
    3.时间差的使用
    datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)
    
    参数说明:
    1.days:天
    2.seconds:秒
    3.microseconds:毫秒 1秒 = 10^3 毫秒
    4.milliseconds:微秒 1秒 = 10^6 微秒
    5.minutes,分钟
    6.hours:小时
    7.weeks:星期 1weeks = 7days
    案例:
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3.0))  # 获取后三天的时间
    print(datetime.datetime.now() + datetime.timedelta(weeks=3.0))  # 获取后三个星期的时间

      

  • 相关阅读:
    dpkg: error processing package XXX (--configure) 解决方法 (ubuntu右上角红色警告)
    overlay2 在打包发布流水线中的应用
    别总写代码,这130个网站比涨工资都重要
    csv 导出变成字符串
    mysql 报错 invalid data source name
    win10 phpredis扩展安装
    redis启动命令
    IDEA Plugins:Easycode(代码生成)安装及使用
    mysql设置自动更新时间
    IDEA快捷键之for循环
  • 原文地址:https://www.cnblogs.com/featherwit/p/13261753.html
Copyright © 2011-2022 走看看