隨心所欲地用Python處理時(shí)間(一)
日期:年月日,如 20210612
時(shí)間:時(shí)分秒,如 20:45:50
Python標(biāo)準(zhǔn)庫(kù)中包含日期(date)和時(shí)間(time)的數(shù)據(jù)類型,還有日歷方面的功能。要比較系統(tǒng)的學(xué)習(xí)該模塊,需要了解下面的兩個(gè)概念。
UTC(全球標(biāo)準(zhǔn)時(shí)間):是全球范圍內(nèi)計(jì)時(shí)的科學(xué)標(biāo)準(zhǔn),它基于精心維護(hù)的原子鐘,在全球范圍內(nèi)精確到微秒,由于英文(CUT)和法文(TUC)的縮寫不同,作為妥協(xié),簡(jiǎn)稱UTC。作為全球最精確的時(shí)間系統(tǒng),天文學(xué)家、航海家、“太空跟蹤網(wǎng)”(DSN) 以及其他科學(xué)性學(xué)科都使用它,它的參考點(diǎn)是英國(guó)格林威治標(biāo)準(zhǔn)時(shí)間(GMT):地球本初子午線的午夜,也是 UTC 的午夜 (00:00:00.000000)。本地時(shí)間是根據(jù)地球上不同時(shí)區(qū)所處的位置調(diào)整 UTC 得來的,比如當(dāng)美國(guó)加州的太平洋時(shí)間為正午 12:00:00 時(shí),UTC 為 20:00:00。
夏令時(shí)(DST):表示為了節(jié)約能源, 人為規(guī)定時(shí)間的意思。也叫夏時(shí)制,夏時(shí)令(Daylight Saving Time:DST),又稱"日光節(jié)約時(shí)制"和"夏令時(shí)間”,在這一制度實(shí)行期間所采用的統(tǒng)一時(shí)間稱為“夏令時(shí)間”。一般在天亮早的夏季人為將時(shí)間調(diào)快一小時(shí),可以使人早起早睡,減少照明量,以充分利用光照資源,從而節(jié)約照明用電。各個(gè)采納夏時(shí)制的國(guó)家具體規(guī)定不同。全世界有近110個(gè)國(guó)家每年要實(shí)行夏令時(shí)。
感知型”和“簡(jiǎn)單型”對(duì)象:日期和時(shí)間對(duì)象可以根據(jù)它們是否包含時(shí)區(qū)信息而分為“感知型”和“簡(jiǎn)單型”兩類。充分掌握應(yīng)用性算法和政治性時(shí)間調(diào)整信息例如時(shí)區(qū)和夏令時(shí)的情況下,一個(gè) 感知型 對(duì)象就能相對(duì)于其他感知型對(duì)象來精確定位自身時(shí)間點(diǎn)。感知型對(duì)象是用來表示一個(gè)沒有解釋空間的固定時(shí)間點(diǎn)。簡(jiǎn)單型對(duì)象沒有包含足夠多的信息來無歧義地相對(duì)于其他 date/time 對(duì)象來定位自身時(shí)間點(diǎn)。
時(shí)間戳:Unix時(shí)間戳是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。Unix時(shí)間戳(英文為Unix epoch, Unix time, POSIX time 或 Unix timestamp)
import timetime.time()1625483470.3409266
Python內(nèi)置的時(shí)間模塊datetime包含下面的模塊包含六個(gè)類和兩個(gè)常數(shù),提供了用于處理日期和時(shí)間的類和對(duì)應(yīng)的方法,一般用于處理年、月、日、時(shí)、分、秒的統(tǒng)計(jì)和計(jì)算等需求,且這些類型的對(duì)象都是不可變的。最常用的是datetime.datetime,有些人誤以為就一個(gè)模塊,其實(shí)是datetime模塊下的datetime類。
常量、類或方法名 | 注解 |
datetime.date | 一個(gè)理想化的簡(jiǎn)單型日期,它假設(shè)當(dāng)今的公歷在過去和未來永遠(yuǎn)有效。屬性包含: year, month, day。 |
datetime.time | 一個(gè)獨(dú)立于任何特定日期的理想化時(shí)間,它假設(shè)每一天都恰好等于 24*60*60 秒。這里沒有“閏秒”的概念) 包含屬性:hour、minute、second、microsecond 、tzinfo。 |
datetime.datetime | 是日期和時(shí)間的結(jié)合,屬性包含year、month、day、hour、minute、second、 microsecond、 tzinfo.表示日期時(shí)間 |
datetime.timedelta | 表示兩個(gè) date 對(duì)象或者 time 對(duì)象,或者 datetime 對(duì)象之間的時(shí)間間隔,精確到微秒。 |
datetime.tzinfo | 一個(gè)描述時(shí)區(qū)信息對(duì)象的抽象基類。用來給datetime和time類提供自定義的時(shí)間調(diào)整概念(例如處理時(shí)區(qū)和/或夏令時(shí))。 |
datetime.timezone | 一個(gè)實(shí)現(xiàn)了tzinfo抽象基類的子類,用于表示相對(duì)于世界標(biāo)準(zhǔn)時(shí)間(UTC)的偏移量。 |
datetime.MINYEAR | 常量,表示年份允許的最小值為1 |
datetime.MAXYEAR | 常量,表示年份允許的最大值為9999 |
今天先寫到這里,下期在寫每個(gè)模塊的應(yīng)用
