[Python] (Day-20) - 日期和時(shí)間

Only I can change my life. No one can do it for me. 只有我可以改變我的命運(yùn),沒有人可以幫我做。

Python 提供了一個(gè) time 和 calendar 模塊可以用于格式化日期和時(shí)間

時(shí)間間隔是以秒為單位的浮點(diǎn)小數(shù)

每個(gè)時(shí)間戳都以自從1970年1月1日午夜(歷元)經(jīng)過了多長時(shí)間來表示


例如:time 模塊下函數(shù)time.time()用于獲取當(dāng)前時(shí)間戳
如下實(shí)例:

import time;  # 引入time模塊

ticks = time.time()
print ("當(dāng)前時(shí)間戳為:", ticks)

實(shí)例輸出結(jié)果:

當(dāng)前時(shí)間戳為: 1509694006.0394611

時(shí)間元組

用一個(gè)元組裝起來的9組數(shù)字處理時(shí)間

字段 屬性
4位數(shù)年 tm_year 2008
tm_mon 1 到 12
tm_mday 1到31
小時(shí) tm_hour 0到23
分鐘 tm_min 0到59
tm_sec 0到61 (60或61 是閏秒)
一周的第幾日 tm_wday 0到6 (0是周一)
一年的第幾日 tm_yday 1到366 (儒略歷)
夏令時(shí) tm_isdst -1, 0, 1, -1是決定是否為夏令時(shí)的旗幟

獲取當(dāng)前時(shí)間

從返回浮點(diǎn)數(shù)的時(shí)間輟方式向時(shí)間元組轉(zhuǎn)換,只要將浮點(diǎn)數(shù)傳遞給如localtime之類的函數(shù)

import time

localtime = time.localtime(time.time())
print ("本地時(shí)間為 :", localtime)

輸出結(jié)果:

本地時(shí)間為 : time.struct_time(tm_year=2017, tm_mon=11, tm_mday=3, tm_hour=15, tm_min=29, tm_sec=18, tm_wday=4, tm_yday=307, tm_isdst=0)


獲取格式化的時(shí)間

根據(jù)需求選取各種格式,但是最簡單的獲取可讀的時(shí)間模式的函數(shù)是asctime()

import time

localtime = time.asctime( time.localtime(time.time()) )
print ("本地時(shí)間為 :", localtime)

輸出結(jié)果:

本地時(shí)間為 : Fri Nov  3 15:36:23 2017

格式化日期

使用 time 模塊的 strftime 方法來格式化日期

格式

time.strftime(format[, t])

實(shí)例:

import time

# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
  
# 將格式字符串轉(zhuǎn)換為時(shí)間戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

實(shí)例輸出結(jié)果:

2017-11-03 15:37:17
Fri Nov 03 15:37:17 2017
1459175064.0

python中時(shí)間日期格式化符號(hào)
符號(hào) 描述
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身

獲取某月日歷

Calendar模塊有很廣泛的方法用來處理年歷和月歷

import calendar

cal = calendar.month(2016, 1)
print ("以下輸出2016年1月份的日歷:")
print (cal)

實(shí)例輸出結(jié)果:

以下輸出2017年11月份的日歷:
   November 2017
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

獲取某一年的日歷

返回一個(gè)多行字符串格式的year年年歷

print(calendar.calendar(2017,w=2,l=1,c=6))

實(shí)例輸出結(jié)果:

                                  2017

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5             1  2  3  4  5
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       6  7  8  9 10 11 12
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      13 14 15 16 17 18 19
16 17 18 19 20 21 22      20 21 22 23 24 25 26      20 21 22 23 24 25 26
23 24 25 26 27 28 29      27 28                     27 28 29 30 31
30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 30
31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31


其他 Calendar 用法

  • 返回當(dāng)前每周起始日期的設(shè)置,首次載入caendar模塊時(shí)返回0,即星期一
calendar.firstweekday()
  • 是否閏年,是閏年返回True,否則為false
calendar.isleap(year)
  • 返回給定日期的日期碼。0(星期一)到6(星期日)。月份為 1(一月) 到 12(12月)
calendar.weekday(year,month,day)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,321評(píng)論 6 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評(píng)論 19 139
  • SwiftDate概況 從Swift發(fā)布起,我們就沒有放棄使用Swift。 當(dāng)然,我們希望在項(xiàng)目能夠輕松自如地管理...
    Mee_Leo閱讀 10,333評(píng)論 1 13
  • 世界上有兩種人 一種有姐姐的人,一種沒姐姐的人 有個(gè)姐姐是一種怎樣的體驗(yàn)? 先說壞的體驗(yàn)吧! 1、她會(huì)在衣品外形上...
    哎妖鯨閱讀 724評(píng)論 0 1
  • 很喜歡安妮寶貝在《薔薇島嶼》中的一句話:有時(shí)候一個(gè)人選擇了行走不是因?yàn)榧拍?,僅僅是因?yàn)槁牭搅诵牡椎穆曇?。?xì)細(xì)想來,...
    有理得理閱讀 458評(píng)論 0 3

友情鏈接更多精彩內(nèi)容