python - 如何检查应用程序将在 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))
获取以前的日期值,但这可能会在以下情况下失败:
- 如果他们上传了文件,
15th-Sept
则文件将具有 nametransData2018/09/15.csv
,但代码将查找transData2018/09/14.csv
不正确的文件。
我应该如何处理这种情况?谢谢
解决方案
Azure 网站平台上设置的默认服务器时间为 UTC。使用以下文章中的代码段,您可以了解平台支持哪些时区,并轻松将 UTC 转换为该时区。请参阅获取 Azure 网站的本地服务器时间。
您可以添加到 Web Apps APP SETTINGS 以将 Web App 设置为本地时间并将 TimeZoneInfo Id 值添加到 WEBSITE_TIME_ZONE 属性,然后,DateTime.Now() 方法将返回本地时间而不是默认时间。
有关更多详细信息,请参阅更改 Azure Web 应用上的服务器时区和设置时区。
推荐阅读
- mysql - 如何从node.js中的数据库mysql获取登录人的用户名
- azure - 通过 terraform 实现天蓝色功能:如何连接到服务总线
- javascript - 无需用户下载新的 apk 即可更新应用内容
- python - 如何调试无法导入“adoptions.models”?
- android - 如何在 Android 4.4 上获取 NMEA 帧
- c# - 反序列化从 .NET Core 3.1 Web API 生成的 XML
- python - 如何用python打开.ink文件
- python - 如何在函数中获取参数字符串?
- javascript - 反应:保护页面与本地存储反应
- docker - 在 Kubernetes 上部署 Dind 并保护 Docker Registry(冒号问题)