首页 > 解决方案 > 如何检查应用程序将在 azure 中运行的时区

问题描述

我有一个 python 网络应用程序,它从网络服务器中提取一些文件。文件按日期命名,因此看起来像

transData2018/09/13.csv

这些文件由时区为GMT-4. 我的时区是GMT+8. 截至目前,我正在本地运行 python 应用程序,因此该应用程序领先。现在因为它早于日期时间,代码必须查找前一天的文件。因此,考虑到今天的日期是否为15-Sept,代码必须查找带有 date 的文件14-Sept。所有这些设置在本地都可以正常工作。

azure web app现在我的计划是在平台上部署这个 python 应用程序。部署后,我不知道它将在哪个时区工作以及它将选择什么时间。基于此,代码应该在文件中查找上一个日期还是仅查找今天的日期。

在我正在做的代码中:

previous_date = str(datetime.now().date() - timedelta(days=1))

获取以前的日期值,但这可能会在以下情况下失败:

  1. 如果他们上传了文件,15th-Sept则文件将具有 name transData2018/09/15.csv,但代码将查找transData2018/09/14.csv不正确的文件。

我应该如何处理这种情况?谢谢

标签: pythonazuretimezoneazure-web-app-service

解决方案


Azure 网站平台上设置的默认服务器时间为 UTC。使用以下文章中的代码段,您可以了解平台支持哪些时区,并轻松将 UTC 转换为该时区。请参阅获取 Azure 网站的本地服务器时间

您可以添加到 Web Apps APP SETTINGS 以将 Web App 设置为本地时间并将 TimeZoneInfo Id 值添加到 WEBSITE_TIME_ZONE 属性,然后,DateTime.Now() 方法将返回本地时间而不是默认时间。

有关更多详细信息,请参阅更改 Azure Web 应用上的服务器时区设置时区


推荐阅读