【发布时间】:2023-04-03 19:02:02
【问题描述】:
我在 Azure 上使用带有 Linux 操作系统的 Function 应用,使用 Python 进行 API 调用。我正在做的是进行 API 调用并将 JSON 文件放入存储帐户中的路径中。我正在尝试使用datetime.utcnow() 获取当前日期和时间并在路径中使用它。
当我在本地运行我的函数应用程序时,一切似乎都很好,并且它给出了今天的正确日期。但是当我在 Azure 门户和 Azure 数据工厂上运行时,它没有提供正确的日期;相反,它给出的日期与在我的系统上本地运行的日期相同。
这让我很困惑,我还没有解决方案。
ISOcurrentTime = str(datetime.now(timezone.utc).isoformat())
currentDate = str(datetime.now(timezone.utc).strftime("%Y/%m/%d"))
【问题讨论】:
-
Function App 是否设置为使用明确的时区?您可以通过添加
WEBSITE_TIME_ZONEApp 设置来实现。请参阅:How do I set the server time zone for my web app?。 -
我不确定我是否理解这个问题,因为 UTC 时间是相同的,无论代码在哪里运行。如果您在本地以及世界其他地方查询当前 UTC 时间,大致在同一时间,您将获得大致相同的时间戳。
-
如果我没记错的话,Python 中的
datetime.utcnow()和datetime.now(timezone.utc)是有区别的。我认为一个确实考虑了夏令时,而另一个则没有。无论如何:很高兴它起作用了! -
@rickvdbosch 感谢您的回复。我只是注意到它不起作用并且我犯了一个错误。虽然我添加了 WEBSITE_TIME_ZONE 并将其设置为 UTC,但我仍然遇到同样的问题。
标签: python linux azure-functions