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

2024-04-28 06:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在写一个小的Django网络应用程序。它使用来自API的JSON数据来呈现所有内容。在localhost中,一切正常。但在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中,它总是输出ELSESuMa = 8在这种情况下。在Localhost中它确实起作用。由于我对azure没有任何经验,我想知道你们中是否有人能帮助我。

我将vs2015与Python工具结合使用。你知道吗


Tags: 数据django程序apijsonlocalhost内容datetime
1条回答
网友
1楼 · 发布于 2024-04-28 06:30:20

这应该是个时区问题。当我们需要将timestamp解析为datetime对象时,它将需要时区设置,默认情况下,它将利用系统时区。Azure服务的时区与美国/洛杉矶的时区相同。你知道吗

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

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

。。。你知道吗

相关问题 更多 >