D19-時間模組

weixin_34162695發表於2018-08-09

1.時間模組


# 主要包含處理年月日時分秒對應的時間(著重時分秒)
import time

# 專門處理年月日
import datetime



if __name__ == '__main__':
    # 1.獲取當前時間
    """
    時間戳:就是從格林威治時間(1970年1月1日0:0:0)到當前時間的時間差(單位是秒)
    # '2010-10-10 12:10:29'
    1. 存時間以時間戳的形式去存,可以節省記憶體空間(一個浮點數的記憶體是4/8個位元組,存一個字串一個字元佔2個位元組)
    2. 自帶對時間加密的功能(加密更方便)
    """
    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)

    # 將時間戳轉換成struct_time
    struct1 = time.localtime(1000000000)
    print(struct1)


    # 2.1 將struct_time抓換成時間戳
    """
    mktime(結構時間)
    """
    """2018-12-31 23:30:40"""
    strc = time.strptime('2018-12-31 23:30:40','%Y-%m-%d %H:%M:%S')
    time1 = time.mktime(strc)

    # 時間加一個小時
    time1 += 60*60
    print('==',time.localtime(time1))



    # 3.時間的格式轉換
    """
    strftime(時間格式,時間)
    將時間以指定的格式轉換成字串
    """
    time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print(time_str)

    """
    strptime(需要轉換的字串,時間格式)
    將時間字串轉換成相應的struct_time
    """
    struct_time = time.strptime('今天是2018年8月5號', '今天是%Y年%m月%d號')
    struct_time = time.strptime('2018-7-20', '%Y-%m-%d')
    print(struct_time)

    # 4.延遲
    """
    sleep(秒)
    可以讓執行緒阻塞指定的時間
    """
    time.sleep(10)

**2.dateTime模組


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)

    """2.物件屬性"""
    # 年(year)、月(month)、日(day)屬性
    print(today.year, type(today.year))
    print(today.month)
    print(today.day)

    """3.物件方法"""
    # 1. 獲取指定日期對應的星期
    print(today.isoweekday())

    # 2. 將指定日期轉換成指定格式的字串日期
    print(today.strftime('%Y年%m月%d日 周%w'))

    # 3. 將日期轉換成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))

相關文章