Python3日期和時間
Python程序可以通過多種方式來處理日期和時間。日期格式之間的轉換是計算機的一個共同核心。Python的時間和日曆模塊能夠幫助我們跟蹤的日期和時間。
什麼是刻度?
時間間隔以秒爲單位的浮點數。特別是在時間瞬間在自1970年1月1日(紀元)12點的表示。
在Python提供一個流行時間 time 模塊,提供時間的的 函數功能,並可轉換表示。函數 time.time()返回當前系統時間,從1970年1月1日12點起來的秒數。
示例
#!/usr/bin/python3
import time; # This is required to include time module.
ticks = time.time()
print ("Number of ticks since 12:00am, January 1, 1970:", ticks)
這將產生一個結果,如下 -
Number of ticks since 12:00am, January 1, 1970: 1455508609.34375
日期計算使用刻度線是很容易做到的。 然而,新紀元日期之前不能以這種形式表示。在未來的一個日期也不能表示這種方式 - 分界點是在某個時候,在 UNIX和Windows上爲 2038年。
什麼是TimeTuple?
許多Python時間的函數處理時間9個數字的元組,如下圖所示 -
索引
字段
值
0
4-digit year
2016
1
Month
1 to 12
2
Day
1 to 31
3
Hour
0 to 23
4
Minute
0 to 59
5
Second
0 to 61 (60 or 61 are leap-seconds)
6
Day of Week
0 to 6 (0 is Monday)
7
Day of year
1 to 366 (Julian day)
8
Daylight savings
-1, 0, 1, -1 means library determines DST
示例
>>> print (time.localtime())
這將產生一個結果如下 -
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=15, tm_hour=9, tm_min=29, tm_sec=2, tm_wday=0, tm_yday=46, tm_isdst=0)
上述元組相當於struct_time結構。這種結構具有以下屬性 -
索引
屬性
值
0
tm_year
2016
1
tm_mon
1 to 12
2
tm_mday
1 to 31
3
tm_hour
0 to 23
4
tm_min
0 to 59
5
tm_sec
0 to 61 (60 or 61 are leap-seconds)
6
tm_wday
0 to 6 (0 is Monday)
7
tm_yday
1 to 366 (Julian day)
8
tm_isdst
-1, 0, 1, -1 means library determines DST
獲取當前時間
劃時代浮點值從秒時刻轉換生成爲時間元組,浮點值傳遞給一個函數返回時間的元組並帶上所有九個項目無效(例如,本地時間)。
#!/usr/bin/python3
import time
localtime = time.localtime(time.time())
print ("Local current time :", localtime)
這將產生以下結果,這可能會在任何其他像樣形式被格式化 -
Local current time : time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=9, tm_min=29, tm_sec=2, tm_wday=0, tm_yday=46, tm_isdst=0)
獲取格式化時間
可以在格式化任何時候按您的要求,但用來獲得時間可讀格式的簡單方法是asctime() -
#!/usr/bin/python3
import time
localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)
這將產生以下結果 -
Local current time : Mon Feb 15 09:34:03 2016
獲取一個月份的日曆
日曆模塊提供各種各樣年度和月度的日曆方法。在這裏,我們將打印給定月份(2008年1月)的日曆 -
#!/usr/bin/python3
import calendar
cal = calendar.month(2016, 2)
print ("Here is the calendar:")
print (cal)
這將產生以下結果 -
Here is the calendar:
February 2016
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
time模塊
Python提供一個流行時間模塊,爲時間和表示之間轉換提供了相應函數。這裏是所有可用方法的列表 -
SN
函數及描述
1
time.altzone
如果定義則在當地的DST時區偏移,在UTC西部秒數。這是負值,如果當地的MST時區是UTC以東 (在西歐,包括英國).只使用這個,如果白天不爲零。
2
time.asctime([tupletime])
接受時間元組,並返回一個可讀24個字符的字符串,如 'Tue Dec 11 18:07:14 2008'.
3
time.clock( )
返回當前CPU時間爲幾秒鐘的浮點數。要測量計算成本的不同的方法,time.clock()的值比time.time更有用。
4
time.ctime([secs])
類似 asctime(localtime(secs))和不帶參數的 ctime()函數
5
time.gmtime([secs])
接受從新紀元用秒錶示瞬間和返回用UTC表示時間元組t。注: t.tm_isdst 總是爲 0
6
time.localtime([secs])
接受從新紀元用秒錶示瞬間和返回本地時間的時間元組t(t.tm_isdst 爲 0 或 1, 根據DST是否通過局部規則適用於時刻秒)
7
time.mktime(tupletime)
接受表示爲本地時間的時間元組並返回從新紀元以秒錶示瞬間的一個浮點值
8
time.sleep(secs)
線程暫停secs秒調用
9
time.strftime(fmt[,tupletime])
接受表示爲本地時間的時間元組瞬間,並返回表示由字符串指定 fmt 瞬間的字符串
10
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
解析 str 按照格式字符串格式化並返回時間元組格式的時間
11
time.time( )
返回當前時刻,從新紀元以來的秒的浮點數
12
time.tzset()
通過重置庫例程使用時間轉換規則。 環境變量TZ指定如何做到這一點
讓我們通過簡單的功能 -
下列是時間模塊提供兩個重要屬性:
SN
屬性及說明
1
time.timezone
屬性time.timezone是在本地時區以UTC的秒偏移量(不包括DST)
2
time.tzname
屬性time.tzname是一對區域設置相關的字符串
calendar模塊
日曆 calendar 模塊提供日曆相關的功能,包括函數用來打印給定月份或年份文本日曆。
默認情況下,日曆採用星期一作爲一週的第一天,週日是最後一個。如要改變這種情況,調用calendar.setfirstweekday()函數。
這裏是 calendar 模塊可用的函數列表:
SN
方法及描述
1
calendar.calendar(year,w=2,l=1,c=6)
返回一個多行字符串使用格式化成用c空格分隔的三列逐年的日曆
2
calendar.firstweekday( )
返回每週工作日開始的當前設置。默認情況下,當日歷被首次導入是0,這意味着星期一
3
calendar.isleap(year)
如果 year 是閏年返回True;否則爲false
4
calendar.leapdays(y1,y2)
返回跨越潤年在範圍內(y1,y2)的總數
5
calendar.month(year,month,w=2,l=1)
返回一個多行字符串以及逐年月月份的日曆,每週一行加上兩個標題行。
6
calendar.monthcalendar(year,month)
返回列表 的列表 整數。
7
calendar.monthrange(year,month)
返回兩個整數。
8
calendar.prcal(year,w=2,l=1,c=6)
類似打印 calendar.calendar(year,w,l,c).
9
calendar.prmonth(year,month,w=2,l=1)
類似打印 calendar.month(year,month,w,l).
10
calendar.setfirstweekday(weekday)
設定每個星期的第一天工作日代碼。工作日代碼是0(星期一)至6(星期日)
11
calendar.timegm(tupletime)
time.gmtime反轉:接受時間元組形式的時刻,並返回同一時刻作爲自新紀元以來秒的浮點數
12
calendar.weekday(year,month,day)
返回給定日期是星期幾代碼。 工作日代碼是0(星期一)至60(星期日);月數是1(1月)到12(12月)
其它模塊和功能:
如果你有興趣,那麼在這裏你會發現其他重要的模塊和功能的列表,包括在Python日期和時間的使用: