python获取本地时区?

时间:2017-05-19 18:28:44

标签: amazon-web-services datetime lambda timezone

我使用tzlocal.get_localzone()来获取本地时区。但是,在AWS Lambda上,这将返回" local"而不是实际的TZ,例如" Americas / New_York"然后,我尝试将返回值与datetime.replace(tzinfo = new_time_zone)一起使用,但是当传入" local"

有没有人知道如何在AWS中执行此操作,因此我的lambda ftn使用TZ相对于其运行的区域,或者我是否需要使用AWS进行升级?

2 个答案:

答案 0 :(得分:4)

您不应在服务器端代码中使用tzlocal。它仅适用于桌面应用程序。

  • 大多数服务器,尤其是基于云的服务,都将其系统时区设置为UTC。

  • 您没有保证服务器的时区特别设置为任何内容(包括UTC或区域时区)。

  • 从一个云环境运行到下一个环境或在内部运行时,您的代码的行为应该不同。

the timezone best practices article中也对此进行了描述。

答案 1 :(得分:0)

您可以使用以下代码获取服务器的时区名称。这意味着,如果服务器位于科罗拉多州的丹佛,则TIME_ZONE将设置为"America/Denver"

import tzlocal
TIME_ZONE = tzlocal.get_localzone().zone