Python时区仅使用AWS Lambda中提供的模块?

问题描述 投票:0回答:1

我正在尝试运行这个改编自this answer的代码。

from datetime import datetime
from pytz import timezone
import pytz

def lambda_handler(event, context):

    date_format='%m/%d/%Y %H:%M:%S %Z'
    date = datetime.now(tz=pytz.utc)
    print('Current date & time is:', date.strftime(date_format))

    date = date.astimezone(timezone('US/Pacific'))

    print('Local date & time is  :', date.strftime(date_format))

我在AWS Lambda上运行。我收到此错误:

Response:
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'pytz'",
  "errorType": "Runtime.ImportModuleError"
}

如何解决此问题,仅使用AWS Lambda中提供的导入?我希望保持代码非常简约,以便可以将其直接复制粘贴到AWS控制台,而无需添加有关如何设置包等的说明。

amazon-web-services aws-lambda python-3.7
1个回答
0
投票

没有简单的方法可以做到这一点。

默认的Lambda Python运行时中没有一个库知道特定(非平凡)时区的规则。 datetime模块定义了用于处理时区转换的API,但它将时区的杂乱细节留给了像pytz这样的第三方库。

当然,您可以随时自行指定这些时区规则。 tzinfo documentation提供了一些示例代码,用于“完全实现美国主要时区的当前DST规则”。但这将是一个很大的开销,我假设它不是你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.