zoukankan      html  css  js  c++  java
  • time、datatime模块

    python中时间日期格式化符号

    %Y  年份(4位数表示)
    %y  年份(2位数表示)
    %m  月份(01-12%d  月内中的一天(0-31%H  24小时制小时数
    %I  12小时制小时数
    %M  分钟数(00=59%S  秒(00-59%a  本地简化星期名称,如:星期三为Web
    %A  本地完整星期名称,如:星期三为Wednesday
    %b  本地简化星期名称,如:4月份为Apr
    %B  本地完整星期名称,如:4月份为April
    %c  本地相应的日期表示和时间表示,如:04/07/10 10:43:39
    %j  年内的一天(001-366%p  AM或PM的等价符
    %U  一年中的星期数(00-53)星期天为星期的开始
    %W  一年中的星期数(00-53)星期一为星期的开始
    %w  今天在这周的天数(0-6)星期天为星期的开始
    %x  本地相应的日期表示,如:09/09/18
    %X  本地相应的时间表示,如:11:11:11
    %z  与utc时间的间隔(如果是本地时间,返回空字符串)
    %Z  时区名称(如果是本地时间,返回空字符串)
    %%  %号本身

    一、time模块

    #常用方法
    import time
    time.sleep(secs)  #(线程)推迟指定的时间运行,单位为秒
    current_time = time.time()  # 获取当前时间戳
    print(current_time)

    表示时间的三种方式:

    • timestamp(时间戳):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量;运行 type(time.time()),返回的是float类型
    • Format String(格式化的时间字符串):例如 2018-09-09
    import time
    print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2018-09-09 20:27:11
    • struct_time(结构化时间,用元组表示):struct_time元组共有9个元素;年、月、日、时、分、秒、一年中第几周、一年中第几天、是否是夏令时

    import time
    # 结构化时间(元组) print(time.localtime()) # time.struct_time(tm_year=2018, tm_mon=9, tm_mday=9, tm_hour=20, tm_min=38, tm_sec=16, tm_wday=6, tm_yday=252, tm_isdst=0)

    总结:

    • 时间戳是计算机能够识别的时间
    • 时间字符串是人能够看懂的时间
    • 结构化时间(元组)则是用来操作时间的

    三种时间表示方式的转换:

    时间戳 <--> 结构化时间

    # 时间戳 --> 结构化时间
    # 格式:time.localtime(时间戳)
    print(time.localtime(8800000000))
    # time.struct_time(tm_year=2248, tm_mon=11, tm_mday=11, tm_hour=4, tm_min=26, tm_sec=40, tm_wday=5, tm_yday=316, tm_isdst=0)
    
    # 结构化时间 --> 时间戳
    # 格式:time.mktime(结构化时间)
    tuple_time = time.localtime(8800000000)
    print(time.mktime(tuple_time))
    # 8800000000.0

    结构化时间 <--> 字符串时间

    # 结构化时间 --> 字符串时间
    # 格式:time.strftime("字符串对应格式","结构化时间")  结构化时间参数若不传,则显示当前时间
    print(time.strftime("%Y-%m-%d", time.localtime(1000000000)))
    # 2001-09-09
    
    # 字符串时间  -->  结构化时间
    # 格式:time.strptime("时间字符串","字符串对应格式")
    print(time.strptime("2001-09-09", "%Y-%m-%d"))
    # time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=252, tm_isdst=-1) 

     

    # 结构化时间  -->  %a %b %d %H:%M:%S %Y
    # 格式:time.asctime(结构化时间)  如果不传参数,直接返回当前时间的格式化字符串
    print(time.asctime(time.localtime(1000000000)))
    # Sun Sep  9 09:46:40 2001
    print(time.asctime(time.localtime()))
    # Sun Sep  9 20:58:28 2018
    
    # 时间戳  -->  %a %b %d %H:%M:%S %Y
    # 格式:time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化字符串
    print(time.ctime(1000000000))
    #Sun Sep  9 09:46:40 2001
    print(time.ctime())
    #Sun Sep  9 21:00:11 2018

    二、datatime模块

    import datetime

    datetime模块中包含如下类

    datetime.date       # 表示日期的类。常用的属性有year, month, day。
    datetime.time       # 表示时间的类。常用的属性有hour, minute, second, microsecond。
    datetime.datetime   # 表示日期时间。
    datetime.timedelta  # 表示时间间隔,即两个时间点之间的长度。
    datetime.tzinfo     # 与时区有关的相关信息。

    data类

    d = datetime.date(2019, 2, 19)
    print(d)  # 2019-02-19
    print(d.year)
    print(d.month)
    print(d.day)
    
    d = datetime.date.today()
    print(d)  # 2019-02-19

    time类

    d = datetime.time(21, 36, 37)
    print(d)
    print(d.hour)
    print(d.minute)
    print(d.second)

    datatime类

    d = datetime.datetime(2019, 2, 19, 21, 36, 37)
    print(d)  # 2019-02-19 21:36:37
    
    d = datetime.datetime.today()  # datetime.datetime.now()
    print(d)  # 2019-02-19 21:36:37.709934

    timedelta类

    ①获取上个月第一天和最后一天的日期

    today = datetime.date.today()
    print(today)     # 2019-02-19
    last_day = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)
    print(last_day)  # 2019-01-31
    first_day = datetime.date(last_day.year, last_day.month, 1)
    print(first_day) # 2019-01-01

    ②计算当前时间向后8个小时的时间

    可以计算:天(days)、小时(hours)、分钟(minutes)、秒(seconds)、微秒(microseconds)

    d = datetime.datetime.now()
    print(d)  # 2019-02-19 21:39:54.970777
    
    d = d + datetime.timedelta(hours=8)
    print(d)  # 2019-02-20 05:39:54.970777

    ③计算上周一和周日的日期

    today = datetime.datetime.today()
    today_weekday = today.isoweekday()  # 返回weekday,星期一返回0,星期二返回1,以此类推
    last_sunday = today - datetime.timedelta(days=today_weekday)
    last_monday = last_sunday - datetime.timedelta(days=6)
    print(last_sunday.date())  # 2019-02-17
    print(last_monday.date())  # 2019-02-11
  • 相关阅读:
    linq 喜悦
    五班二组高级软件测试作业一总结
    五班二组高级软件测试进度报告
    五班二组黑盒测试实践作业进度报告(1)
    五班二组高级软件测试进度报告
    五班二组高级软件测试进度报告
    [ 语文 ] 西游记50~52回阅读笔记
    [ 具体数学 ] 0:前言
    [ 具体数学 ] 3:和式与封闭式
    [ 历史 ] 黄巢起义
  • 原文地址:https://www.cnblogs.com/believepd/p/10403241.html
Copyright © 2011-2022 走看看