day_018 date模块和datetime模块

一、date模块

"""
主要包含处理年月日时分秒对应的时间(着重时分秒)
"""
import time
"""
专门处理年月日
"""
import datetime


if __name__ == '__main__':
    # 1.获取当前时间
    """
    时间戳:就是从格林威治时间(1970年1月1日0:0:0)到当前时间的时间差(单位是秒)
    '2010年10月10日 12点10分'
    a.存时间以时间戳的形式去存,可以节省内存空间(一个浮点数的内存是4/8个字节,存一个字符占用2个字节)
    b.自带加密对时间加密的功能(加密更方便)
    """
    time1 = time.time()
    print(time1, type(time1))

    # 2.将时间戳转换成struct_time
    """
    localtime(seconds)
    参数seconds:a.不传参,就是将当前时间对应的时间戳转换成struct_time
                b.传参,将指定的时间转换成struct_time
    """
    time1 = time.localtime()
    print(time1)

    """
    struct_time的结构:
    tm_year:年
    tm_mon:月
    tm_mday:日
    tm_hour:时
    tm_min:分
    tm_sec:秒
    tm_wday:星期(0-6 --- 周一-周日)
    tm_yday:今天是今年的第几天
    tm_isdst:是否是夏令时
    """
    print(time1.tm_year, time1.tm_mon, time1.tm_mday)

    # 2.1 将struct_time 转换成时间戳
    """2018-8-31 23:30:40"""
    print('-'*20)

    strc21 = time.strptime('2018-8-31 23:30:40', '%Y-%m-%d %H:%M:%S')
    print(strc21)
    strc22 = time.mktime(strc21)
    print(strc22)
    strc22 += 60*60
    print(strc22)
    strc21 = time.localtime(strc22)
    print(strc21)

    print('-'*20)

    # 3.时间格式的转换
    """
    strftime(时间格式,时间)
    将时间以指定的格式转换成字符串
      %y 两位数的年份表示(00-99)
      %Y 四位数的年份表示(000-9999)
      %m 月份(01-12)
      %d 月内中的一天(0-31)
      %H 24小时制小时数(0-23)
      %h 12小时制小时数(01-12)
      %M 分钟数(00=59)
      %S 秒(00-59)
      %a 本地简化星期名称
      %A 本地完整星期名称
      %b 本地简化的月份名称
      %B 本地完整的月份名称
      %c 本地相应的日期表示和时间表示
      %j 年内的一天(001-366)
      %p 本地A.M.或P.M.的等价符
      %U 一年中的星期数(00-53)星期天为星期的开始
      %w 星期(0-6),星期天为星期的开始
      %W 一年中的星期数(00-53)星期一为星期的开始
      %x 本地相应的日期表示
      %X 本地相应的时间表示
      %Z 当前时区的名称
      %% %号本身

    """
    time2 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print(time2)

    """
    trptime(需要转换的字符串,时间格式)
    将时间字符串转换成相应的struct_time
    """
    struct_time2 = time.strptime('今天是2018年8月9号', '今天是%Y年%m月%d号')
    struvt_time3 = time.strptime('2018-8-10', '%Y-%m-%d')
    print(struct_time2)
    print(struvt_time3)

    # 4.延时
    """
    sleep(second)
    可以让线程阻塞指定的时间
    """
    time.sleep(5)

二、datetime模块

import datetime


if __name__ == '__main__':
    # 1.日期类(date)
    """a.类的字段"""
    # 最小日期
    print(datetime.date.min, type(datetime.date.min))
    # 最大日期
    print(datetime.date.max, type(datetime.date.max))
    # 分辨率
    print(datetime.date.resolution)

    # 2.类方法

    # 获取今天的日期
    today = datetime.date.today()
    print(today)

    # 将时间戳转换成日期
    this_day = datetime.date.fromtimestamp(0)
    print(this_day)

    #

    """b.对象属性"""
    max_y = datetime.date.max
    print(max_y.year, type(max_y.year))
    print(max_y.month)
    print(max_y.day)

    """c.对象方法"""
    # 获取星期(0-6 对应的是 周一-周日)
    week_day = today.weekday()

    # 获取星期(1-7 对应的是 周一-周日)
    print(today.isoweekday())

    # 将日期转换成ctime格式 Thu Aug  9 00:00:00 2018
    print(today.ctime())

    # 将日期转换成指定的格式
    print(today.strftime('%Y-%m-%d'))

    # 将日期转化成struct_time
    print(today.timetuple())

    """d.创建日期对象"""
    print(datetime.date(2017, 8, 8))

    # =======datetime类=========
    dt1 = datetime.datetime(2018, 8, 9, 16, 15, 50, 10)
    print(dt1)

    dt2 = dt1.hour
    print(dt2)

    # 将时间戳转换成datetime
    print(datetime.datetime.fromtimestamp(1020202))

    # now(时区):获取当前时间
    print(datetime.datetime.now())

你可能感兴趣的:(day_018 date模块和datetime模块)