Python中的時間格式很多,如何在不同的時間格式之間進行轉換是一項必須掌握的技能。下面從多個方面對Python時間格式轉換進行介紹。
一、時間戳和字符串之間的轉換
在Python中,時間戳是從1970年1月1日以來經過的秒數,常用於表示一個相對時間。字符串則是以指定的格式來表示具體的時間點。
將時間戳轉換為字符串,可以使用time模塊中的strftime()方法。該方法接受一個時間格式化字符串作為參數,在返回值中替換相應的時間信息。例如:
import time timestamp = 1602645291 date_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp)) print(date_str) # 輸出:2020-10-14 12:08:11
將字符串轉換為時間戳,可以使用time模塊中的strptime()方法。該方法接受兩個參數,一個是時間字符串,一個是該字符串的格式。例如:
import time date_str = "2020-10-14 12:08:11" timestamp = int(time.mktime(time.strptime(date_str, "%Y-%m-%d %H:%M:%S"))) print(timestamp) # 輸出:1602645291
二、時區轉換
在跨時區的應用中,要對時間進行轉換以適應不同的時區。Python中可以使用pytz模塊來支持時區轉換。該模塊提供了一個tzinfo類,可以根據不同的時區設置不同的tzinfo對象。
將本地時間轉換為UTC時間可以這樣實現:
import datetime import pytz tz = pytz.timezone('Asia/Shanghai') local_time = datetime.datetime.now(tz=tz) utc_time = local_time.astimezone(pytz.utc) print(local_time.strftime('%Y-%m-%d %H:%M:%S %Z%z')) # 輸出:2022-01-15 20:02:33 CST+0800 print(utc_time.strftime('%Y-%m-%d %H:%M:%S %Z%z')) # 輸出:2022-01-15 12:02:33 UTC+0000
將UTC時間轉換為本地時間可以這樣實現:
import datetime import pytz tz = pytz.timezone('Asia/Shanghai') utc_time = datetime.datetime.utcnow().replace(tzinfo=pytz.utc) local_time = utc_time.astimezone(tz) print(utc_time.strftime('%Y-%m-%d %H:%M:%S %Z%z')) # 輸出:2022-01-15 12:02:33 UTC+0000 print(local_time.strftime('%Y-%m-%d %H:%M:%S %Z%z')) # 輸出:2022-01-15 20:02:33 CST+0800
三、日期和時間操作
在Python中,可以使用datetime模塊對日期和時間進行操作。
比如要計算兩個日期之間相差的天數,可以這樣實現:
import datetime date1 = datetime.date(2022, 1, 10) date2 = datetime.date(2022, 1, 15) delta = date2 - date1 print(delta.days) # 輸出:5
比如要在現有時間上加上一段時間,可以這樣實現:
import datetime now = datetime.datetime.now() delta = datetime.timedelta(days=1, hours=2, minutes=30) target = now + delta print(now.strftime('%Y-%m-%d %H:%M:%S')) # 輸出:2022-01-15 20:26:43 print(target.strftime('%Y-%m-%d %H:%M:%S')) # 輸出:2022-01-17 22:56:43
四、其他時間格式轉換
除了上述的時間格式轉換之外,Python還可以將時間轉換為其他格式。比如要將時間轉換為UNIX時間,可以這樣實現:
import datetime dt = datetime.datetime(2022, 1, 15, 20, 0, 0) unix_timestamp = int(dt.timestamp()) print(unix_timestamp) # 輸出:1642278000
比如要將時間轉換為ISO8601格式,可以這樣實現:
import datetime import pytz dt = datetime.datetime(2022, 1, 15, 20, 0, 0, tzinfo=pytz.utc) iso_str = dt.isoformat() print(iso_str) # 輸出:2022-01-15T20:00:00+00:00
五、結論
Python中的時間格式轉換操作非常靈活,可以滿足各種需求。掌握了這些基本的時間格式轉換操作,可以輕鬆地進行時間相關的編程。
原創文章,作者:IVBCY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/317079.html