一、了解時間格式化字元串
strptime函數是Python中將字元串轉換為時間的函數,它可以將字元串解析為一個時間元組。在使用該函數之前,了解時間格式化字元串對於正確解析時間字元串至關重要。時間格式化字元串是一個字元串,其中包含一些特殊的格式化指令,將會在調用strptime函數時被替換為相應的值。
下面是一些常用的格式化指令:
%Y 四位數的年份
%m 月份(01-12)
%B 月份名稱
%b 月份名稱縮寫
%d 日期(01-31)
%H 小時(00-23)
%M 分鐘(00-59)
%S 秒(00-59)
%f 微秒
%z UTC偏移量
%Z 時區名稱
%j 一年中的第幾天 (001-366)
%U 一年中的第幾周 (00-53) 星期日作為一周的第一天
%W 一年中的第幾周 (00-53) 星期一作為一周的第一天
%c 完整的日期和時間
%x 僅日期
%X 僅時間
%w 星期(0-6),星期日為星期0
例如,時間格式化字元串為「%Y-%m-%d %H:%M:%S」,該字元串表示將時間格式化為「年-月-日 時:分:秒」的形式。
二、將字元串轉換為時間
下面是一個例子,將時間字元串轉換為時間元組:
import time
date_str = "2022-01-01 08:15:27"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(time_tuple)
輸出:
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=15, tm_sec=27, \
tm_wday=5, tm_yday=1, tm_isdst=-1)
上述代碼中,date_str表示要轉換的時間字元串,”%Y-%m-%d %H:%M:%S”是時間格式化字元串,調用strptime函數將時間字元串轉換為時間元組。運行程序後,輸出的結果為時間元組。
三、從時間元組中獲取時間
time元組是一個包含9個元素的元組,可以使用元組的索引獲取時間元素,例如tm_year表示年份,tm_mon表示月份等。
下面是一個例子,從時間元組中獲取年份:
import time
date_str = "2022-01-01 08:15:27"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
year = time_tuple.tm_year
print(year)
輸出:
2022
上述代碼中,通過解析時間字元串獲得時間元組,然後使用tm_year獲取年份。
四、將時間轉換為字元串
通過strftime函數可以將時間元組轉換為時間字元串,具體方法是給定一個時間格式化字元串,然後將時間元組格式化成字元串。
下面是一個例子,將時間元組轉換為時間字元串:
import time
time_tuple = (2022, 1, 1, 8, 15, 27, 5, 1, -1)
date_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(date_str)
輸出:
2022-01-01 08:15:27
上述代碼中,先定義一個時間元組,然後使用strftime函數將時間元組轉換為時間字元串,運行程序後可以看到輸出的時間字元串為”2022-01-01 08:15:27″。
五、處理時區
strptime函數和strftime函數的時區參數都是不同的。在調用strptime函數時,可以使用”UTC”或”+”符號和UTC偏移量指定時間字元串中的時區標識符。在調用strftime函數時,可以使用”%z”或”%Z”指令指定輸出的時區。
下面是一個例子,演示如何將使用UTC時區的時間字元串轉換為時間元組,並將其轉換為指定時區的時間字元串:
import time
date_str = "2022-01-01 08:15:27+00:00"
time_tuple = time.strptime(date_str, "%Y-%m-%d %H:%M:%S%z")
local_time_tuple = time.localtime(time.mktime(time_tuple) + 8 * 3600)
local_date_str = time.strftime("%Y-%m-%d %H:%M:%S %Z", local_time_tuple)
print(local_date_str)
輸出:
2022-01-01 16:15:27 CST
上述代碼中,首先使用strptime函數解析時間字元串且該字元串包含時區信息,然後使用localtime函數將時間元組轉換為本地時間元組。最後使用strftime函數將本地時間元組轉換為包含時區信息的時間字元串,並輸出。
六、總結
strptime函數是Python中將字元串轉換為時間的函數,它可以將字元串解析為一個時間元組。在使用該函數之前,了解時間格式化字元串對於正確解析時間字元串至關重要。通過strftime函數可以將時間元組轉換為時間字元串。處理時區時,strptime函數和strftime函數的時區參數都是不同的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283406.html