Python DateTime if 语句在 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



在 azure 中,这始终输出ELSE 。 在这种情况下SuMa = 8。在本地主机中,它确实有效。由于我对 azure 没有任何经验,我想知道你们中是否有人可以帮助我。

我将VS 2015与Python Tools一起使用。

这应该是时区问题。就像我们需要将时间戳解析为 datetime 对象一样,它将需要时区设置,默认情况下它将利用系统时区。Azure 服务上的时区都与美国/Los_Angeles相同。

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

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

最新更新