Python DateTime if 语句在 Azure 中的行为不同。(Django WebApp)

Python DateTime if statement behaves different in Azure.(Django WebApp)

所以我正在写一个小的 Django webApp。它使用来自 API 的 JSON 数据来呈现所有内容。在本地主机上,一切运行良好。但在 Azure 中却没有。

是这段代码中的某处:

for appointment in appointmentsMaandag:
    starttijd = (datetime.datetime.fromtimestamp(appointment['start'])).strftime('%H%M')
    SuMa = 0
    if  800 <= int(starttijd) < 850:
        SuMa = 0
    elif  850 <= int(starttijd) < 940:
        SuMa = 1
    elif  940 <= int(starttijd) < 1050:
        SuMa = 2
    elif  1050 <= int(starttijd) < 1140:
        SuMa = 3
    elif  1140 <= int(starttijd) < 1240:
        SuMa = 4
    elif  1240 <= int(starttijd) < 1350:
        SuMa = 5
    elif  1350 <= int(starttijd) < 1440:
        SuMa = 6
    elif  1440 <= int(starttijd) < 1530:
        SuMa = 7
    else:
        SuMa = 8
    break



在天蓝色中,这总是输出 ELSESuMa = 8 在这种情况下。在 Localhost 中它确实有效。由于我对天蓝色没有任何经验,我想知道你们中是否有人可以帮助我。

我使用带有 Python 工具的 VS 2015。

应该是时区问题。因为当我们需要将时间戳解析为日期时间对象时,它需要时区设置,默认情况下它会利用系统时区。并且 Azure 服务上的时区都与 America/Los_Angeles.

相同

因此您需要在代码中设置本地时区,例如:

import pytz
localtz = pytz.timezone('Asia/Hong_Kong')
starttijd = (datetime.datetime.fromtimestamp(appointment['start'],tz=localtz)).strftime('%H%M')
print starttijd

...