日期和時間,日期時間
#在代碼中,我們常常需要和時間打交道。在Python中,與時間處理有關的模組包括time、datetime以及calendar.#在Python中,通常用時間戳記、格式化的時間字串和元組3中方式表示時間。下面分別進行講解。1、時間戳記#通常,時間戳記(timestamp)表示從1970年1月1日00時00分00秒開始按秒計算的位移量,也就是從1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起到現在的總毫秒數。#時間戳記是一個經加密後形成的憑證文檔,包括3部分:①:需加時間戳記的檔案的摘要(digest)。②:DTS收到檔案的日期和時間。③:DTS的數位簽章。#一般來說,時間戳記產生的過程為:使用者首先將需要加時間戳記的檔案用Hash編碼加密形成摘要,然後將該摘要發送到DTS,DTS加入收到檔案摘要的日期和時間資訊後再對該檔案加密(數位簽章),最後發送回使用者。#書面簽署檔案的時間是由簽署人自己寫上的,而數字時間戳記是由認真單位DTS添加的,以DTS收到檔案的時間為依據。#Python3.5中支援的最大時間戳記為32535244799(3001-01-01 15:59:59). 2、時間格式化符號#在Python中,一般用下表所示的格式化符號對時間進行格式化。
| 格式 |
含義 |
備忘 |
| %a |
本地簡化星期名稱 |
|
| %A |
本地完整星期名稱 |
|
| %b |
本地簡化月份名稱 |
|
| %B |
本地完整月份名稱 |
|
| %c |
本地相應的日期和時間表示 |
|
| %d |
一個月中的第幾天(01-31) |
|
| %H |
一天中的第幾個小時(24小時制,00-23) |
|
| %I |
第幾個小時(12小時制,01-12) |
|
| %j |
一年中的第幾天(001-366) |
|
| %m |
月份(01-12) |
|
| %M |
分鐘數(00-59) |
|
| %p |
本地AM或PM的相應符 |
① |
| %S |
秒(01-61) |
② |
| %U |
一年中的星期數(取值00-53,星期天為一星期的開始),第一個星期天之前的所有天數都放在第0周 |
③ |
| %w |
一個星期中的第幾天(0-6,0是星期天) |
③ |
| %W |
和%U基本相同,不同的是%W以星期一為一個星期的開始 |
|
| %x |
本地相應日期 |
|
| %X |
本地相應時間 |
|
| %y |
去掉世紀的年份(00-99) |
|
| %Y |
完整的年份 |
|
| %Z |
時區的名字(如果不存在為空白字元) |
|
| %% |
%字元 |
|
#下面介紹上表中3個備忘的含義①:%p只有與%I配合使用才有效果。②:文檔中強調確實是0-61,而不是59,閏年秒佔兩秒。③:當使用strptie()函數時,只有這一年的周數和天數確定時%U和%W才會被計算3、struct_time元組#struct_time元組共有9個元素:年、月、日、時、分、秒、一年中第幾周、一年中第幾天、是否為夏令時。#Python函數用一個元組裝起來的9組數文書處理時間,也被稱作struct_time元組。下表列出了這種結構的屬性。
| 序號 |
屬性 |
欄位 |
值 |
| 0 |
tm_year |
4位年數 |
如2008 |
| 1 |
tm_moon |
月 |
1-12 |
| 2 |
tm_mday |
日 |
1-31 |
| 3 |
tm_hour |
小時 |
0-23 |
| 4 |
tm_min |
分鐘 |
0-59 |
| 5 |
tm_sec |
秒 |
0-61(60或61是閏秒) |
| 6 |
tm_wday |
一周的第幾日 |
0-6(0是周一) |
| 7 |
tm_yday |
一年中第幾天 |
1-366(儒略曆) |
| 8 |
tm_isdst |
夏令時 |
-1、0、1、-1是決定是否位夏令時的旗幟 |