Python程式將本地時間轉換為GMT
當我們建立一個允許全球使用者預訂活動的網路服務時,我們可能會使用此程式將每個使用者的本地時間轉換為GMT,然後再將其放入我們的資料庫中。這將使比較和顯示不同時區使用者的事件時間變得更容易。在Python中,我們有一些內建的函式,如timezone()、localize()、now()和astimezone(),可用於將本地時間轉換為GMT。本地時間表示當前時間,而GMT透過計算本初子午線來定義。GMT代表格林尼治標準時間,但現在被稱為UTC(協調世界時)。此時間也稱為Z時間或Zulu時間。
語法
以下語法在示例中使用:
now()
這是一種在Python中使用的預定義方法,它返回不帶任何時區的本地時間。
timezone()
timezone()方法用於表示特定國家或地區的時區。此方法使用名為pytz的模組。
localize()
localize()方法用於需要建立日期時間時。名為pytz的模組有助於執行此內建函式。
astimezone()
此方法用作物件,並將新時區作為引數傳遞。
strftime()
這是一種Python中的內建方法,可用於將日期轉換為字串。因此,使用者可以輕鬆理解它到底是什麼。
utc.to().to()
這是arrow模組的內建方法,可用於兩種不同的時間轉換。
tz_convert()
此方法用於將一個時區轉換為另一個時區。
tz_locallize()
這也是一個內建方法,將用於定位時區。
示例1
在下面的示例中,我們將從名為datetime的模組中匯入datetime的所有內容開始程式,這將找到本地時間。然後,我們將從名為pytz的模組中匯入timezone和utc的所有內容,這將找到GMT時間。然後將預定義方法timezone()儲存在變數ltz中。timezone()方法透過獲取任何國家/地區的時區作為引數。接下來,將utc儲存在變數time2中,該變數將用於計算GMT中的時區。接下來使用預定義方法localize()和astimezone()查詢本地時間。這兩個方法充當具有變數ltz的物件,並將其儲存在變數temp2中。最後,我們使用變數time1和temp2列印本地時間到GMT的結果。
from datetime import datetime from pytz import timezone,utc #local time time1 = datetime.now() #local timezone ltz = timezone( 'Asia/Kolkata' ) # GMT time2 = utc #Covert the local time into GMT time2 = ltz.localize( time1 ).astimezone( time2 ) print( "The current local time:", time1 ) print( "After conversion into GMT" ) print( "The current GMT:", time2 )
輸出
The current local time: 2023-04-18 13:02:05.289406 After conversion into GMT The current GMT: 2023-04-18 07:32:05.289406+00:00
示例2
在下面的示例中,我們將從匯入名為datetime和pytz的模組開始程式。然後初始化表示本地時間的變數l_time,並使用預定義函式datetime.now()儲存當前日期和時間的值。然後timezone()方法接受引數以傳遞GMT時區。此方法充當名為pytz的模組的物件,將其儲存在變數g_timezone中。接下來,預定義函式astimezone()接受變數g_timezone作為引數。此方法充當具有變數名l_time的物件,以將本地時間轉換為GMT,並將其儲存在變數g_time中。最後,我們使用變數g_time列印結果。
import datetime import pytz #initialize the local time l_time = datetime.datetime.now() #Conversion of loctime - GMT g_timezone = pytz.timezone( 'GMT' ) g_time = l_time.astimezone( g_timezone ) # Print the GMT print( "The local time converts into GMT:\n", g_time )
輸出
The local time converts into GMT: 2023-04-18 08:13:08.274818+00:00
示例3
在下面的示例中,我們將從名為datetime的模組中匯入datetime的所有內容開始程式,這將有助於將本地時間轉換為GMT時間。然後匯入time模組,該模組將用於設定兩個時間中引用的時間。然後初始化兩個變數- l_time和g_time,它們使用內建方法strftime()儲存值,並將本地時間和GMT時間分別找到到相應的變數。
from datetime import datetime import time l_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) print(f'Local time: {l_time}') g_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()) print(f'GMT time: {g_time}')
輸出
Local time: 2023-05-07 12:50:47 GMT time: 2023-05-07 12:50:47
示例4
在下面的示例中,我們將首先安裝名為pip install arrow的命令,該命令允許使用者根據arrow模組執行程式。然後從匯入名為arrow的模組開始程式。接下來,使用內建方法utcnow()作為arrow模組的物件,並將其儲存在變數utc中。GMT的另一個名稱是UTC。接下來列印本地時間到GMT,使用內建方法utc.to().to(),它接受兩個引數- local和utc來顯示時間轉換。
import arrow utc = arrow.utcnow() print("\nlocal to utc:") print(utc.to('local').to('utc'))
輸出
local to utc: 2023-05-10T11:15:37.548334+00:00
示例5
在下面的示例中,從匯入名為pandas的模組開始程式,並以物件pd作為參考。然後從datetime類匯入datetime模組。接下來,使用接受六個引數(即年份、月份、日期、小時、分鐘和秒)的內建方法datetime()儲存日期和時間,並將其儲存在變數local_time中。然後使用接受名為local_time的引數的內建方法Timestamp,該引數轉換計算機記錄的當前時間和事件。開始初始化名為local_tz的變數,該變數透過替換本地時區儲存值。為了將本地化時間戳轉換為GMT,它將值初始化為GMT,並將它們儲存在變數gmt_tz中(tz是時區的縮寫)。然後使用內建方法tz_convert(),該方法充當具有時間戳的物件,接受名為gmt_tz的引數,這有助於將時間轉換為不同的模式,並將其儲存在變數gmt_timestamp中。最後,使用print函式並傳遞名為gmt_timestamp的引數以獲取結果。
import pandas as pd from datetime import datetime local_time = datetime(2023, 5, 10, 17, 22, 0) timestamp = pd.Timestamp(local_time) local_tz = 'asia/kolkata' # replace with your local timezone local_timestamp = timestamp.tz_localize(local_tz) gmt_tz = 'GMT' gmt_timestamp = local_timestamp.tz_convert(gmt_tz) print(gmt_timestamp)
輸出
2023-05-10 11:52:00+00:00
結論
以上兩個輸出顯示了當前日期的GMT結果。我們看到了內建函式如何幫助將本地時間的時區轉換為GMT。timezone()方法接受GMT作為引數,它定義了本初子午線。astimezone()接受時區作為引數並生成結果。