在 Python 中将 UTC 转换为 EST

在本文中,让我们尝试了解如何使用不同的 Python 编程语言模块将 UTC(协调世界时)转换为 EST(东部标准时间)。我们还将找到有关如何照顾 c 的解决方案。夏令时通常被称为“夏令时”,该系统在夏季的正常醒着时间里不断提前时钟以延长日照时间。

在北半球国家,时钟通常在三月底或四月初向前拨一小时,在九月底或十月初向后拨一小时。

在 Python 中,可以使用 datetime 和 pytz 模块将 UTC 转换为 EST。导入这两个模块,创建一个将日期时间对象作为输入的函数,并使用 astimezone() 方法对其进行转换。pytz模块考虑夏令时,使得转换准确。

用于 UTC 到 EST 转换的 Python 模块

1. Datetime 模块: Python 包含一个 DateTime 模块,可让您与日期和时间进行交互。DateTime 不是 Python 中的基本数据类型,而是一个集成模块。要与日期作为日期对象进行交互,我们只需导入上面指定的模块即可。该类的属性与日期类和不同类的属性相当。日、月、年、分、秒、微秒、小时和 tzinfo 是其中一些属性。要了解有关日期时间模块的更多信息,请单击此处。

2. Pytz模块:使用Python 2.4或以上版本,该模块可以实现精确的跨平台时区转换。它还消除了夏令时造成的混乱。Olson 时区数据库pytz python 模块的帮助下引入 Python。

Python中UTC到EST转换的实现

在我们开始创建解决方案函数之前,请确保在当前工作的 python IDE 中安装并导入上述两个 python 模块。为此,请运行以下命令

#installing pytz module
pip install pytz
 
#importing both the modules
import datetime
import pytz

接下来,我们创建一个将日期时间对象作为输入参数的函数。为了提及日期时间对象的时区等必要信息,我们将添加tzinfo=pytz.utc到日期时间对象中。如果输入参数是使用 获得的datetime.datetime.now(),那么我们将传递tz=pytz.utc它。

要检索指定时区代码的时区详细信息,我们在函数中使用 pytz 模块的 pytz.timezome() 方法。

  • 根据季节,这种方法还会自动调整夏令时。
  • 由于 Python 对夏令时 (DST) 的支持比 EST 更好,因此通常建议使用美国/东部时间而不是 EST 作为时区标识符。
  • 最后但并非最不重要的一点是,可以使用 astimezone() 方法将时区感知的日期时间对象从一个时区转换为另一个时区。在返回函数的输出之前,我们将对象从 UTC 转换为 EST。

下面是上述函数的代码

import datetime
import pytz
 
time = datetime.datetime(2020, 10, 8, 7, 6, 0, tzinfo=pytz.utc)
 
def convert_utc_to_est(utc_time):
  #fetch the timezone information
  est = pytz.timezone('US/Eastern')
 
  #convert utc to est
  est_time = utc_time.astimezone(est)
 
  #return the converted value
  return est_time
 
 
est_time = convert_utc_to_est(time)
 
#print in year-month-day-hour-minutes-secods format
print('UTC time: ', time.strftime('%Y-%m-%d %H:%M:%S'))
print('EST time: ', est_time.strftime('%Y-%m-%d %H:%M:%S'))

输出

在上面的代码中,指定的日期时间对象作为参数传递给函数。我们还尝试使用 datetime.datetime.now() 方法传递 datetime 对象。功能和整个过程保持不变。唯一的区别是我们添加了额外的tz=pytz.utc而不是tzinfo=pytz.utc. 下面是相同的输出

结论

使用Python的datetime和pytz模块,我们可以轻松地将UTC时间转换为EST时间,同时还考虑夏令时。Python 的多功能性和内置模块使日期和时间的处理更加高效和简化。

要阅读更多与Python编程语言相关的各种主题的详细且易于理解的文章,请点击这里!

参考

pytz模块官方文档