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中。最後,我們使用變數time1temp2列印本地時間到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

在下面的示例中,我們將從匯入名為datetimepytz的模組開始程式。然後初始化表示本地時間的變數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()接受時區作為引數並生成結果。

更新於: 2023年6月1日

5K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告