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()接受时区作为参数并生成结果。