醉里挑燈看劍窝爪,夢回吹角連營。八百里分麾下炙齐媒,五十弦翻塞外聲蒲每。沙場秋點(diǎn)兵。
馬作的盧飛快喻括,弓如霹靂弦驚邀杏。了卻君王天下事,贏得生前身后名唬血⊥可憐白發(fā)生!
幾個(gè)術(shù)語了解
- 時(shí)間戳(timestamp)的方式:通常來說,時(shí)間戳表示的是從1970年1月1日開始按秒計(jì)算的偏移量(time.gmtime(0))此模塊中的函數(shù)無法處理1970紀(jì)元年以前的時(shí)間或太遙遠(yuǎn)的未來(處理極限取決于C函數(shù)庫拷恨,對于32位系統(tǒng)而言脖律,是2038年)
- UTC(Coordinated Universal Time,世界協(xié)調(diào)時(shí))也叫格林威治天文時(shí)間,是世界標(biāo)準(zhǔn)時(shí)間.在我國為UTC+8
- DST(Daylight Saving Time)即夏令時(shí)
一腕侄、time模塊的使用
-
time.time()
獲取當(dāng)前時(shí)間戳(以秒為單位的浮點(diǎn)型的時(shí)間戳)
print(time.time())
>>>1539847769.6119404
-
time.localtime(seconds=None)
默認(rèn)獲取當(dāng)前時(shí)間的結(jié)構(gòu)化時(shí)間
print(time.localtime())
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=15, tm_min=35, tm_sec=0, tm_wday=3, tm_yday=291, tm_isdst=0)
-
time.mktime(p_tuple)
將結(jié)構(gòu)化時(shí)間轉(zhuǎn)化成時(shí)間戳格式
print(time.mktime(time.localtime()))
>>>1539849828.0
注意和time.time()的區(qū)別:
print(time.time())
1539849828.090503
-
time.strftime(format, p_tuple=None)
格式化時(shí)間(字符串)
print(time.strftime("%Y-%m-%d %H:%M:%S"))
>>>2018-10-18 15:56:42
-
time.strptime(string, format)
將格式化時(shí)間轉(zhuǎn)成結(jié)構(gòu)化時(shí)間
print(time.strptime("2018-10-18 15:56:42","%Y-%m-%d %H:%M:%S"))
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=15, tm_min=56, tm_sec=42, tm_wday=3, tm_yday=291, tm_isdst=-1)
-
time.gmtime(seconds=None)
默認(rèn)當(dāng)前UTC時(shí)間轉(zhuǎn)結(jié)構(gòu)化時(shí)間状您,與英國倫敦當(dāng)?shù)貢r(shí)間一致
print(time.gmtime(time.time()))
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=8, tm_min=10, tm_sec=16, tm_wday=3, tm_yday=291, tm_isdst=0)
- time.sleep(secends)
線程推遲指定的時(shí)間運(yùn)行
附一:
附二:time時(shí)間之間的轉(zhuǎn)換
二、datetime 模塊的使用
datetime模塊定義了5個(gè)類兜挨,分別是
- 1.datetime.date:是指年月日構(gòu)成的日期(相當(dāng)于日歷)
- 2.datetime.datetime:是指時(shí)分秒微秒構(gòu)成的一天24小時(shí)中的具體時(shí)間(相當(dāng)于手表)
- 3.datetime.time:上面兩個(gè)合在一起膏孟,既包含時(shí)間又包含日期
- 4.datetime.timedelta:表示時(shí)間間隔,即兩個(gè)時(shí)間點(diǎn)的間隔
- 5.datetime.tzinfo:時(shí)區(qū)的相關(guān)信息
1. datetime.date類
- date類有三個(gè)參數(shù),datetime.date(year,month,day)拌汇,返回year-month-day
print(datetime.date(2017,12,1))
>>>2017-12-01
-
datetime.date.today()
獲取當(dāng)前時(shí)間的年月日
print(datetime.date.today())
>>>2018-10-18
-
datetime.date.isoweekday(cls)
獲取指定日期是星期幾柒桑,1=周一,7=周天
a = datetime.date.today()
print(datetime.date.isoweekday(a))
>>>4
-
datetime.date.weekday(cls)
獲取指定日期是星期幾噪舀,0=周一魁淳,6=周天
a = datetime.date.today()
print(datetime.date.weekday(a))
>>>3
-
datetime.date.fromtimestamp(時(shí)間戳)
將時(shí)間戳轉(zhuǎn)化成特定格式的年月日
print(datetime.date.fromtimestamp(1539847769))
>>>2018-10-18
-
cls.timetuple() 將特定格式的日期轉(zhuǎn)化成結(jié)構(gòu)化時(shí)間
a = datetime.date.today()
print(a.timetuple())
>>>time.struct_time(tm_year=2018, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=291, tm_isdst=-1)
-
cls.replace(year=2010) 替換指定的年月日
a = datetime.date.today()
print(a.replace(year=2010))
>>>2010-10-18
2. datetime.time類
time類有5個(gè)參數(shù)飘诗,datetime.time(hour,minute,second,microsecond,tzoninfo)
print(datetime.time(8,5,32))
print(datetime.time(8,5,32,32))
>>>08:05:32
>>>08:05:32.000032
cls.strftime("時(shí)間格式")
指定時(shí)間格式
a= datetime.time(8,5,32,32)
print(a.strftime("%H:%M"))
>>>08:05
cls.replace()
替換時(shí)分秒
a= datetime.time(8,5,32,32)
print(a.replace(hour=18))
>>>18:05:32.000032
datetime.time.tzname()
返回時(shí)區(qū)名字:略datetime.time.utcoffset()
返回時(shí)區(qū)的時(shí)間偏移量:略
3. datetime.datetime類
datetime模塊類的使用大同小異,有很多方法我們可能這輩子都用不上界逛,datetime類的方法比較多昆稿,在這里我就撿重點(diǎn)的列一下:
-
datetime.datetime.now()或者datetime.datetime.today()
得到當(dāng)前的具體時(shí)間(不指定時(shí)區(qū)時(shí)兩個(gè)方法一樣的效果)
print(datetime.datetime.now())
>>>2018-10-18 19:15:17.691425
-
datetime.datetime.now().date()
返回當(dāng)前時(shí)間的年月日部分
print(datetime.datetime.now().date())
>>>2018-10-18
-
datetime.datetime.now().time()
返回當(dāng)前時(shí)間的時(shí)分秒...部分
print(datetime.datetime.now().time())
>>>19:16:54.497104
-
datetime.datetime.strftime()
由日期格式轉(zhuǎn)化為字符串格式
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
>>>2018-10-18 19:21:13
-
datetime.datetime.strptime()
由字符串格式轉(zhuǎn)化為日期格式
a = datetime.datetime.strptime("2018-10-18 19:21:37",'%Y-%m-%d %H:%M:%S')
print(a,type(a))
>>>2018-10-18 19:21:37 <class 'datetime.datetime'>
4. datetime.timedelta類
datetime.datetime.timedelta用于計(jì)算兩個(gè)日期之間的差值:
import datetime
a = datetime.datetime(2015, 10, 3)
b = datetime.datetime.now()
res1 = (b - a)
res2 = (b - a).days // 取時(shí)間差天數(shù)
res3 = (b - a).seconds // 取時(shí)間差時(shí)分秒部分的秒數(shù)總和
res4 = (b - a).microseconds // 取時(shí)間差 秒數(shù)之后的微秒數(shù)
res5 = (b - a).total_seconds() // 時(shí)間差的總秒數(shù)
print(res1) >>> 1111 days, 19:48:35.543523
print(res2) >>> 1111
print(res3) >>> 71315
print(res4) >>> 71315
print(res5) >>> 96061715.543523