day19-time模块

1. 时间模块

  • 主要包含处理年月日时分秒对应的时间(着重时分秒)
    import time
  • 专门处理年月日
    import datetime
  1. 获取当前时间
    时间戳:就是从格林威治时间(1970年1月1日0:0:0)到当前时间的时间差(单位是秒)
    '2010年10月10日 12点10分'
    a. 存时间以时间戳的形式去存,可以节省内存空间(一个浮点数内存是4/8个字节,存一个字符串一个字符占两个字节)
    b. 自带对时间加密的功能(加密更方便) # 如 time1 += 37136642
    time1 = time.time()
    print(time1, type(time1))
  1. 将时间戳转换成struct_time
    localtime(seconds)
    参数seconds:
    a. 不传参,就是将当前时间对于的时间戳转换成struct_time
    b. 传参,就是将指定的时间转换成struct_time
    time1 = time.localtime()
    print(time1)
    """
    struct_time的结构:
    tm_year:年
    ...
    tm_year:星期(0-6 --> 周一到周天)
    tm_yday:当前是当年的第几天
    tm_isdst:是否是夏令时
    """
    print(time1.tm_year, time1.tm_mon, time1.tm_mday)

    # 将时间转换成struct_time
    struct1 = time.localtime(0)
    print(struct1)

2.1 将struct_time转换成时间戳

    """
    mktime(时间结构)
    """
    """2018-8-31 23:30:40"""
    strc = time.strptime('2018-8-31 23:30:40', '%Y-%m-%d %H:%M:%S')
    time1 = time.mktime(strc)

    # 时间加一个小时
    time1 += 60*60
    print('--------------------------------------')
    print(time.localtime(time1))
  1. 时间的格式转换
    """
    strftime(时间格式,时间)
    将时间以指定的格式,转换成字符串
    """
    time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print(time_str)

    """
    strptime(需要转换的字符串,时间格式)
    将时间字符串转换成相应的struct_time
    """
    struct_time = time.strptime('Today is 2018-8-9', 'Today is %Y-%m-%d')
    print(struct_time)
    struct_time = time.strptime('2018-7-19', '%Y-%m-%d')
    print(struct_time)
  1. 延迟
    """
    sleep(秒数):可以让线程阻塞指定的时间
    """
    time.sleep(10)

2. datetime模块

"""__author__ = Percy"""
import datetime

if __name__ == '__main__':
    # 1. 日期类(date) -- 只能表示年月日
    """1.类的字段"""
    # 最小的日期
    print(datetime.date.min, type(datetime.date.min))
    # 最大日期
    print(datetime.date.max)
    # 最小单位
    print(datetime.date.resolution)
    """2.类方法"""
    # 获取当前日期
    today = datetime.date.today()
    print(today)

    # 将时间戳转换成日期
    today2 = datetime.date.fromtimestamp(0)
    print(today2)
    """3.对象属性"""
    # 年(year)、月(mouth)、日(day)属性
    print(today.year, type(today.year))
    print(today.month)
    print(today.day)
    """4.对象方法"""
    # 1. 获取指定日期对应星期
    print(today.isoweekday())

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

    # 3. 将指定日期转换成指定格式的字符串日期
    print(today.strftime('%Y--%m--%d week:%w'))

    # 4. 将日期转换成struct_time
    print(today.timetuple())
    """4. 创建日期对象"""
    print(datetime.date(2018, 9, 10))

    # =========datetime类==========
    """1. 类方法"""
    # 1. 将时间戳转换成datetime
    # print(datetime.datetime.fromtimestamp(0))

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

    # 3. 将时间字符串按指定的格式转换成datetime对象
    print(datetime.datetime.strptime('2018-8-10 10:30:40', '%Y-%m-%d %H:%M:%S'))
    """2.对象方法"""
    # 1.将datatime对象转换成struct_time
    print(now_dt.timetuple())

    # 2.获取datatime中时分秒的部分
    print(now_dt.time())

    # 3.获取datetime中日期的部分
    print(now_dt.date())

    # 4.将datetime转换成时间戳
    print(now_dt.timestamp())

    # ============3.timedelta方法==========
    # 日期加一天
    print(today + datetime.timedelta(days=100))
    print(now_dt + datetime.timedelta(days=1))

    # 日期减两天
    print(today + datetime.timedelta(days=-2))
    print(now_dt + datetime.timedelta(days=-2))

    # 时间增加50分钟
    print(now_dt + datetime.timedelta(minutes=50))

    # 时间增加1000毫秒
    print(now_dt + datetime.timedelta(microseconds=1000))

你可能感兴趣的:(day19-time模块)