在Python中,時間數據的表達有很多形式,其中最常見的是時間戳。
時間戳是指自1970年1月1日0時0分0秒(北京時間1970年1月1日8時0分0秒)以來的秒數。使用時間戳可以方便地記錄時間,進行時間運算等。
在Python中將時間元組(即(year, month, day, hour, minute, second, weekday, Julian day, DST))轉換為時間戳,可以使用time模塊中的mktime()函數。
一、mktime()函數的使用方法
mktime()函數的用法比較簡單,直接調用即可:
import time
t = (2019, 12, 31, 18, 30, 0, 1, 365, 0)
ts = time.mktime(t)
print(ts)
上述代碼將時間元組(2019, 12, 31, 18, 30, 0, 1, 365, 0)轉換為時間戳,並打印出來,結果為1577783400.0。
二、注意事項
在使用mktime()函數進行時間轉換時,需要注意以下幾點:
1. 時間元組必須是9個元素,其中weekday和Julian day可以忽略,可以將其都設為0。
2. mktime()函數將本地時間轉換為時間戳,因此需要根據本地時間來設置時間元組。
3. 時間戳是以秒為單位的,因此需要將時間元組中的年、月、日、時、分、秒轉換為秒數相加,得到總秒數。
三、應用實例
下面給出一個具體的應用實例,實現一個將任意時間字符串轉換為時間戳的函數:
import time
def str_to_timestamp(time_str, format="%Y-%m-%d %H:%M:%S"):
timestamp = time.mktime(time.strptime(time_str, format))
return timestamp
該函數中使用了strptime()函數將時間字符串按照指定的格式轉換為時間元組,然後再使用mktime()函數將時間元組轉換為時間戳。
例如,我們可以使用該函數將字符串”2019-12-31 18:30:00″轉換為時間戳:
time_str = "2019-12-31 18:30:00"
ts = str_to_timestamp(time_str)
print(ts)
輸出結果為1577783400.0,與我們之前的結果一致。
四、總結
在Python中將時間元組轉換為時間戳非常簡單,只需要使用mktime()函數即可。在使用mktime()函數時,需要注意時間元組必須是9個元素,且是本地時間。除此之外,我們還可以結合其他函數實現更多功能,例如將時間字符串轉換為時間戳等。
總而言之,時間的表達方式多種多樣,在使用時需要根據實際需求選擇最合適的方式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295964.html