Python Time模塊是Python標準庫中的模塊之一,它提供了一系列處理日期和時間的函數和類。其中,gmtime()函數可以用於獲取格林威治標準時間的結構體,本文將從以下幾個方面詳細介紹。
一、gmtime()函數介紹
gmtime()函數是Time模塊中的一個函數,它用於獲取格林威治標準時間的結構體,其語法如下:
import time time.gmtime([seconds])
其中,seconds為可選參數,表示從1970年1月1日00:00:00的UTC(協調世界時)算起的秒數。如果不傳遞seconds,則默認獲取當前時間的結構體。
gmtime()函數返回的結果是一個命名元組(named tuple),包含有tm_year、tm_mon、tm_mday、tm_hour、tm_min、tm_sec、tm_wday、tm_yday、tm_isdst這9個屬性,它們分別代表年、月、日、時、分、秒、星期、一年中的第幾天和是否為夏令時等信息。例如:
import time struct_time = time.gmtime(1627968000) print(struct_time) 輸出結果: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=215, tm_isdst=0)
上述代碼輸出當地時間2021年8月3日0點0分0秒的結構體信息。
二、格林威治標準時間與協調世界時(UTC)
在介紹gmtime()函數的具體使用之前,我們需要了解一些概念,其中兩個重要概念是格林威治標準時間和協調世界時。
格林威治標準時間(Greenwich Mean Time,GMT)是因為英國皇家格林威治天文台而得名,它以該天文台的本地時作為參考時間。後來,格林威治標準時間也被正式定義為以1970年1月1日00:00:00的UTC作為標準的時間,即Unix時間戳的起點。這種時間表示方式是一種絕對時間,不受時區影響。
協調世界時(Coordinated Universal Time,UTC)是一種新的日期和時間系統,它基於原子鐘時間,並以GMT和國際原子時間標準來調整。UTC是世界上使用最為廣泛的時間標準,它是一種持續不斷地同步和校正時鐘的統一時間標準,也是計算機系統中常用的時間標準之一。UTC同樣是一種絕對時間,不受時區影響。
由於一些歷史和政治原因,世界各地的時區之間相差了不同程度的時間。要處理這種情況,就需要考慮時區問題。利用Python的Time模塊,可以將本地時間與其它時區的時間進行轉換,即將表示時間的UTC偏移量添加或減少。
三、獲取當前時間的結構體
通過gmtime()函數獲取當前時間的結構體非常簡單,只需要在調用函數時省略seconds參數即可。例如:
import time struct_time = time.gmtime() print(struct_time) 輸出結果: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=6, tm_min=4, tm_sec=42, tm_wday=1, tm_yday=215, tm_isdst=0)
上述代碼將輸出當前時間的結構體信息,其中tm_wday代表星期幾,tm_yday代表一年中的第幾天。
四、將結構體轉換為時間字符串
在實際應用中,我們通常需要將結構體轉換為時間字符串進行展示或存儲。通過strftime()函數,可以將結構體轉換為指定格式的時間字符串,其語法如下:
struct_time = time.gmtime() time_str = time.strftime(format, struct_time)
其中,format表示時間字符串的格式,具體含義如下:
格式字符 | 含義 | 示例 |
---|---|---|
%Y | 四位數的年份 | 2021 |
%m | 兩位數的月份(01-12) | 08 |
%d | 兩位數的日期(01-31) | 03 |
%H | 24小時制小時數(00-23) | 06 |
%M | 分鐘數(00-59) | 04 |
%S | 秒數(00-59) | 42 |
例如,要將結構體轉換為形如“2021-08-03 06:04:42”的時間字符串,可以使用如下代碼:
import time struct_time = time.gmtime() time_str = time.strftime("%Y-%m-%d %H:%M:%S", struct_time) print(time_str) 輸出結果: 2021-08-03 06:04:42
五、將時間字符串轉換為結構體
與將結構體轉換為時間字符串相反,有時候我們也需要將時間字符串轉換為結構體進行處理。這可以通過strptime()函數實現。其語法如下:
time_str = '2021-08-03 06:04:42' struct_time = time.strptime(time_str, format)
其中,time_str為待轉換的時間字符串,format為待轉換的時間字符串的格式,與strftime()函數的參數含義相同。例如,如下代碼可以將“2021-08-03 06:04:42”轉換為結構體:
import time time_str = '2021-08-03 06:04:42' struct_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(struct_time) 輸出結果: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=6, tm_min=4, tm_sec=42, tm_wday=1, tm_yday=215, tm_isdst=-1)
需要注意的是,strptime()函數返回的結構體中,沒有tm_isdst屬性。它代表結構體是否為夏令時,由系統自行判斷。
六、gmtime()函數的使用注意事項
在使用gmtime()函數時,需要注意以下幾點:
- 結構體的各個屬性從0開始計數,即1代表1月、0代表周日。
- 結構體的tm_yday屬性表示一年中的第幾天,其範圍應該是1-366。
- gmtime()函數返回的是UTC時間,即不包含時區信息。如果需要將UTC時間轉換為本地時間,可以使用localtime()函數,它與gmtime()函數的用法類似。
七、總結
gmtime()函數是Python Time模塊中的一個重要函數,它可以用於獲取格林威治標準時間的結構體。在實際應用中,我們還可以通過strftime()函數將結構體轉換為時間字符串,通過strptime()函數將時間字符串轉換為結構體,以及通過localtime()函數獲取本地時間的結構體等。這些函數的使用可以幫助我們更好地處理日期和時間相關的任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248650.html