欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

關(guān)于Python中時(shí)間模塊的案例分析-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒(méi)有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。

這篇文章將為大家詳細(xì)講解有關(guān)Python中時(shí)間模塊的案例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1. 寫(xiě)在前面

關(guān)于時(shí)間相關(guān)的處理無(wú)處不在, 比如日志管理必然要記錄時(shí)間, 統(tǒng)計(jì)程序執(zhí)行開(kāi)始、結(jié)束時(shí)間, 測(cè)試函數(shù)的執(zhí)行時(shí)長(zhǎng), 在時(shí)間序列的相關(guān)分析上, 也往往用到python的時(shí)間模塊和pandas的時(shí)間處理相結(jié)合, 所以了解python時(shí)間模塊的一些常用操作也是非常重要的,。

這篇文章就小總一下python的時(shí)間模塊的使用方法, 同樣 依然是從使用的角度出發(fā)。

python與時(shí)間處理相關(guān)的模塊有兩個(gè): time模塊和datetime模塊。

time模塊提供兩種時(shí)間表達(dá)方式(假定一個(gè)零點(diǎn)基準(zhǔn),偏移長(zhǎng)度換算為按秒的數(shù)值型和由 9 個(gè)整數(shù)組成的元組 struct_time 表示的時(shí)間), 前面這種一般在測(cè)試函數(shù)的執(zhí)行時(shí)長(zhǎng)時(shí)候用到, 后者比較常用。

datetime模塊, 常用類4個(gè)(date, time, datetime, timedelta), 后面會(huì)一一看看常用的操作

最后再整理一個(gè)calendar, 這里面也是提供了一些挺有意思的功能。

Ok, let’s go!

2. time模塊

使用之前, 要導(dǎo)入時(shí)間模塊

import time

time模塊提供了時(shí)間相關(guān)的類和函數(shù)。 常用的就是一個(gè)類struct_time, 這里面有表示時(shí)間的9個(gè)整數(shù)組成的元組。 關(guān)于time模塊, 常用的是下面的5個(gè)函數(shù):

# 當(dāng)前時(shí)間浮點(diǎn)數(shù)  time()
second = time.time()    # 1592451544.5129032

這個(gè)一般在測(cè)試函數(shù)執(zhí)行速度的時(shí)候用到, 在函數(shù)執(zhí)行前用start統(tǒng)計(jì)當(dāng)前時(shí)間, 函數(shù)執(zhí)行完畢用end統(tǒng)計(jì)當(dāng)前時(shí)間, 然后兩者一減就可以看出該函數(shù)的執(zhí)行速度。

# 時(shí)間數(shù)組 localtime()  這個(gè)函數(shù)就可以把上面的這種浮點(diǎn)轉(zhuǎn)成struct_time
local_time = time.localtime(second)
local_time   # 這里面就可以獲取相應(yīng)的屬性, tm_wday表示周幾, tm_yday表示一年的第多少天
## 結(jié)果:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=18, tm_hour=10, tm_min=21, tm_sec=56, tm_wday=3, tm_yday=170, tm_isdst=0)

通過(guò)相應(yīng)的屬性名就可以獲取相應(yīng)的時(shí)間值, 但是這個(gè)看起來(lái)依然不是我們想要的時(shí)間格式, 那么我們就可以用下面的兩個(gè)函數(shù)獲取我們看的比較順眼的時(shí)間格式:

# 時(shí)間字符串  time 類 asctime 方法,轉(zhuǎn)換 struct_time 為時(shí)間字符串
str_time = time.asctime(local_time)
str_time     # 'Thu Jun 18 10:21:56 2020'
# 如果上面的還不順眼, 可以自己格式化時(shí)間
# 格式化字符串  time 類 strftime 方法,按照時(shí)間格式要求,格式化 struct_time 為時(shí)間字符串
format_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
format_time      # '2020-06-18 10:21:56'

這樣是不是好看多了。下面再介紹一個(gè),就是把這種格式再變回到struct_time的那種格式:

# 字符時(shí)間轉(zhuǎn)時(shí)間數(shù)組   strptime()
str_to_struct = time.strptime(format_time, '%Y-%m-%d %H:%M:%S')  # 注意:第二個(gè)參數(shù)的時(shí)間格式,要匹配上第一個(gè)參數(shù)的時(shí)間格式。
str_to_struct   
## 結(jié)果:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=18, tm_hour=10, tm_min=21, tm_sec=56, tm_wday=3, tm_yday=170, tm_isdst=-1)

最后還要記住常用的時(shí)間格式:

%Y :年

%m :月 取值 [01,12]

%d :天 取值 [01,31]

%H :小時(shí) 取值 [00,23]

%M :分鐘 取值 [00,59]

%S :秒 取值 [00,61] 閏秒

關(guān)于時(shí)間模塊, 比較常用的就這5個(gè)函數(shù)了。

3. datetime模塊

datetime模塊里面有四個(gè)常用類, date, datetime, time, timedelta。

date: 日期類, 包括屬性年月日及相關(guān)方法

time: 時(shí)間類, 包括屬性時(shí)分秒及相關(guān)方法

datetime: 日期時(shí)間,繼承于 date,包括屬性年、月、日、時(shí)、分、秒等及相關(guān)方法,其中年月日必須參數(shù)

timedelta: 兩個(gè) datetime 值的差,比如相差幾天(days)、幾小時(shí)(hours)、幾分(minutes)等

看起來(lái)挺復(fù)雜, 但是從使用的角度來(lái)看, 用到的東西也不是太多, 下面一一來(lái)看, 首先依然是先導(dǎo)入:

from datetime import date, time, datetime, timedelta

date: date表示日期, 能用的無(wú)非是打印當(dāng)前日期, 當(dāng)前日期轉(zhuǎn)成格式字符串, 然后再變回去, 方法和上面time模塊里面的差不多。

# 打印當(dāng)前日期
tod = date.today()
tod      # datetime.date(2020, 6, 18)
# 當(dāng)前日期字符串
str_date = date.strftime(tod, '%Y-%m-%d')
str_date   # '2020-06-18'
# 字符日期轉(zhuǎn)日期
# date 類里沒(méi)有 strptime 方法,它的子類 datetime 才有解析字符串日期的方法 strptime。
str_to_date = datetime.strptime('2020-02-22', '%Y-%m-%d')
str_to_date       # datetime.datetime(2020, 2, 22, 0, 0)

datetime: 這個(gè)類繼承于date, 并且在日期的基礎(chǔ)上加上了time。 常用的依然是獲取當(dāng)前時(shí)間, 當(dāng)前時(shí)間格式化, 然后再變回去。

# 打印當(dāng)前時(shí)間
right = datetime.now()
right    # datetime.datetime(2020, 6, 18, 10, 31, 43, 759828)
# 當(dāng)前時(shí)間轉(zhuǎn)字符串顯示
str_time = datetime.strftime(right, '%Y-%m-%d %H:%M:%S')
str_time  # '2020-06-18 10:31:43'
# 當(dāng)前時(shí)間轉(zhuǎn)字符串顯示
str_time = datetime.strftime(right, '%Y-%m-%d %H:%M:%S')
str_time   # datetime.datetime(2020, 6, 18, 10, 31, 43)

timedelta: 求兩個(gè) datetime 類型值的差,返回差幾天:days,差幾小時(shí):hours 等. 相減的兩個(gè)時(shí)間,不能一個(gè)為 date 類型,一個(gè)為 datetime 類型,盡管兩個(gè)類型是父子關(guān)系。

d1 = datetime.today()
d2 = d1 - timedelta(hours=10)
print(d1, d2)  # 2020-06-18 11:08:26.659060 2020-06-18 01:08:26.659060

這個(gè)在時(shí)間序列的數(shù)據(jù)處理上也是非常常用的, 和pandas的pd.DateOffset類似, 可以計(jì)算時(shí)間差, 尤其是做滯后特征的時(shí)候。

4. Calendar模塊

這個(gè)模塊也有一些有意思的小案例,比如打印個(gè)日歷, 判斷是否閏年, 判斷一個(gè)月有幾天, 獲取到月的第一天和最后一天。 下面一一來(lái)看:

繪制某一年的日歷圖

import calendar
year_calerdar_str = calendar.calendar(2020)
print(year_calerdar_str)

可以看一下效果:

關(guān)于Python中時(shí)間模塊的案例分析

繪制某一個(gè)月的日歷圖

# 月的日歷圖
month_calendar_str = calendar.month(2020, 6)
print(month_calendar_str)
這樣會(huì)單獨(dú)打印某個(gè)月的日歷圖。
判斷某一年是否閏年(之前都是寫(xiě)代碼判斷的, 什么能被4整除或者不能被4整除但是能被400整除啥的, 現(xiàn)在竟然有包可調(diào))
# 判斷是否閏年
is_leap = calendar.isleap(2020)
is_leap    # True
判斷一個(gè)月有幾天
# 判斷月有幾天
mydate = date.today()
weekday, days = calendar.monthrange(mydate.year, mydate.month)
print(weekday, days)      # weekday表示該月的第一天是周幾, days表示該月有多少天
# 結(jié)果: 0  30
月的第一天和最后一天
# 月的第一天和最后一天
mydate = date.today()
# 第一天
month_first_day = date(mydate.year, mydate.month, 1)
# 最后一天
_, days = calendar.monthrange(mydate.year, mydate.month)
month_last_day = date(mydate.year, mydate.month, days)
print(month_first_day, month_last_day)

好了, 關(guān)于python時(shí)間模塊常用的一些操作先整理到這里, 最后給出一個(gè)案例,這個(gè)案例可以幫忙算算從現(xiàn)在開(kāi)始還有幾天是女朋友的生日, 這樣每天算一遍, 就不會(huì)忘了, 哈哈。

import re
# 計(jì)算女朋友的生日離現(xiàn)在還有幾天
def get_days(birthday:str)->int:
    splits = re.split(r'[-.\s+/]', birthday)  
    splits = [s for s in splits if s]
    if len(splits) < 3:
        raise ValueError('輸入格式不正確, 至少包括年月日')
    
    splits = splits[:3]  # 只截取年月日
    birthday = datetime.strptime('-'.join(splits), '%Y-%m-%d')
    tod = date.today()
    delta = birthday.date() - tod
    return delta.days
  
get_days('2020-09-24')     # 98

關(guān)于Python中時(shí)間模塊的案例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

當(dāng)前文章:關(guān)于Python中時(shí)間模塊的案例分析-創(chuàng)新互聯(lián)
瀏覽地址:http://aaarwkj.com/article28/isocp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序軟件開(kāi)發(fā)、外貿(mào)建站、定制開(kāi)發(fā)企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
日本在线一区二区不卡视频 | 亚洲精品在线一二三区| 99人妻一区二区三区在线| 中文字幕一区精品日韩| 日韩av在线黄色免费大全| 禁区正片免费看完整国产| 星空无限传媒国产最新| 亚洲五月六月激情综合| 日本一区二区中文字幕在线| 浮力草草日韩欧美三级| 精彩国产av一区二区三区| 免费观看亚洲成人av| 国产一区二区三区在线视频播放| 久久久久久国产综合精品| 国产成人大片一区二区三区| 精品丝袜熟女一区二区三区| 午夜视频免费在线观看| 久草区免费在线视频播放| 一区二区亚洲国产精品| 国产自愉自愉免费精品七| 日本av东京热在线播放| 久久国产精品午夜视频| 国产日韩亚洲欧美在线| 午夜性色福利视频你懂的| 久久亚洲精品综合一区| 亚洲不卡免费在线视频| 亚洲男人天堂在线观看| 亚洲av毛片在线免费播放| 相泽南亚洲一区二区在线播放| 亚洲综合色一区二区三区小说| 精品裸足人妻少妇二区三区| 国产一区二区欧美久久| 亚洲一区二区三区女同| 精品人妻一区二区av| 日本av在线中文一区二区 | 日日夜夜久久一二三区| 久久人妻蜜桃一区二区三区| 午夜在线观看成人av| 亚洲成人av在线蜜桃| 精品人妻一区二区三区四| 亚洲福利一区福利三区|