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+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告