Python 将本地时间转换为GMT程序
当我们创建一个允许全球用户预订活动的Web服务时,我们可以使用这个程序将每个用户的本地时间转换为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模块,该模块将用于设置两个时间的参考。然后使用内置方法strftime()初始化两个变量l_time和g_time来存储值,并将本地时间和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()作为对象,将其存储在变量utc中。GMT的另一个名称是UTC。继续使用内置方法utc.to().to()将本地时间打印为GMT,其中to()接受两个参数-本地时间和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 中。然后使用内置方法 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()方法接受了时区作为参数,并生成了结果。