2018-08-09 day19 time和datetime模块

time

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

if __name__ == '__main__':
    # 1.获取当前时间
    '''
    时间戳:从格林威治时间(1970年1月1日0时0分0秒)到当前时间的时间差(单位:秒)
    1.存时间以时间戳的形式去存,可以姐合适呢个内存空间(一个浮点数的内存是4-8个字节,字符串一个字符2个字节)
    2.自带时间加密的功能(加密更方便)
    '''
    t1 = time.time()
    print(t1, type(t1))

    # 2.将时间戳转换成struct_time
    '''
    localtime(seconds)
    参数second:a.不传参,就是当前时间对应的时间戳转换成struct_time
              b.传参,将指定的时间转换成struct_time
    '''
    t2 = time.localtime()
    print(t2)
    '''
    tm_year:年
    tm_mon:月
    tm_mday:日
    tm_hour时
    tm_min:分
    tm_sec:秒
    tm_wday:星期(0 - 6 → 周一 - 周天)
    tm_yday:是当前的第几天
    tm_isdst:是否是夏令时
    '''
    print(t2.tm_year, t2.tm_mon, t2.tm_mday)

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

    # 将struct_time转换为时间戳
    '''2018-8-31 23:30:40'''
    '''
    mktime(结构时间)
    '''
    print('-----------------------------------------------------------')
    srtc = time.strptime('2018-8-31 23:30:40', '%Y-%m-%d %H:%M:%S')
    time1 = time.mktime(srtc)
    time1 += 3600
    print(time.localtime(time1))

    # 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 当前时区的名称
    * %% %号本身
    '''
    time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print(time_str)
    '''
    strptime(需要转换的字符串,时间格式)
    将时间字符串转换成相应的struct_time
    '''
    struct_time = time.strptime('2018-9-9-', '%Y-%m-%d-')
    print(struct_time)

    # 4.延迟
    '''
    sleep(秒)
    可以让线程阻塞x秒
    '''
    time.sleep(1)

datetime

import datetime

if __name__ == '__main__':
    pass
    '''1.日期类(date) -- 只能表示年月日'''
    # 最小日期
    print(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)
    date1 = datetime.date.fromordinal(1000)
    print(date1)
    '''3.对象属性'''
    # 年月日属性
    max1 = datetime.date.max
    print(max1.year)
    print(max1.month)
    print(max1.day)
    '''4.对象方法'''
    # 1.获取星期(1-7 周一-周天)
    print(today.isoweekday())

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

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

    # 4.将日期转换成struct_time
    print(today.timetuple())
    
    '''4.创建日期对象'''
    print(datetime.date(2017, 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))

你可能感兴趣的:(2018-08-09 day19 time和datetime模块)