导入 pytz 失败时如何获取太平洋时区的当前时间?

Posted

技术标签:

【中文标题】导入 pytz 失败时如何获取太平洋时区的当前时间?【英文标题】:How to get current time in Pacific Timezone when import pytz fails? 【发布时间】:2018-12-16 05:23:21 【问题描述】:

我在 import pytz 不起作用的环境 (AWS Lambda) 中工作。

环境设置为 UTC。

在这种环境下如何获取美国太平洋时区的当前时间?

我需要一些简单且维护成本低的东西。以某种方式强制 import pytz 工作将是理想的,我希望避免将整个 pytz 库复制到我自己的脚本中。

详情

到目前为止,我尝试了什么?我尝试使用import pytz,但由于找不到模块而失败。

示例代码?我直接从关于 SO 的另一个问题尝试了这个:

import pytz

eastern = pytz.timezone('US/Eastern')
utc = pytz.utc
test = '2013-03-27 23:05'

【问题讨论】:

可以在环境(shell)中设置变量,命名为TZ @Romeo Ninov 可以在脚本中以某种方式指定吗? 请检查这个问题和答案:***.com/questions/1301493/setting-timezone-in-python 您不必将其复制到您的脚本中。只需将其放入您的deployment package。 【参考方案1】:

如果您在您的环境中无权访问pytz,也许您可​​以访问python-dateutil。在这种情况下,您可以这样做:

import datetime
import dateutil.tz

eastern = dateutil.tz.gettz('US/Eastern')
datetime.datetime.now(tz=eastern)

【讨论】:

以上是关于导入 pytz 失败时如何获取太平洋时区的当前时间?的主要内容,如果未能解决你的问题,请参考以下文章

Python Pytz美国/太平洋时区问题[重复]

Rails:使用Heroku时如何获取当前用户的时区

如何强制 pytz 使用当前的标准时区?

`datetime.now(pytz timezone)` 啥时候失败?

如何使用 pytz 从时区字符串中获取 UTC 偏移量?

如何获取 pytz 时区的通用名称,例如。美国/纽约的 EST/EDT