Django django.utils.timezone.make_aware未添加默认时区

时间:2019-06-30 12:33:02

标签: python django datetime timezone

django timezone.make_aware未正确将原始日期时间转换为时区日期时间

我的应用程序正在处理一些表示日期时间的字符串,例如:

class Entity {
public:
    Entity (Vector2 position)
        : position(position) { }

    Vector2 position;
}

class Person : public Entity {
public:
    Person(Vector2 position, std::string name)
        : Entity(position), name(name) { }

    std::string name;
}

class Vehicle : public Entity {
public:
    Vehicle (Vector2 position, int power)
        : Entity(position), power(power) { }

    int power;
}

std::vector<Entity> FindEntitiesAtPosition(std::vector<Entity> entities, Vector2 position) {
    std::vector<Entity> result;
    for (Entity e : entities) {
        if (e.position == position)
            result.push_back(e);
    }
    return result;
}

int main() {
    std::vector<Person> persons;
    persons.emplace_back(Vector2(1.f, 1.f), "Alice");
    persons.emplace_back(Vector2(2.f, 2.f), "Bob");

    std::vector<Vehicle> vehicles;
    persons.emplace_back(Vector2(1.f, 1.f), 3);
    persons.emplace_back(Vector2(2.f, 2.f), 4);

    // Should return person with name "Bob"
    std::vector<Person> v1 = FindEntitiesAtPosition(persons, Vector2(2.f, 2.f));

    // Should return vehicle with power 4
    std::vector<Vehicle> v2 = FindEntitiesAtPosition(vehicles, Vector2(2.f, 2.f));
}

我正在从外部API接收这些数据,所以我无法控制接收到的值。 我正在尝试使用以下代码在python模型中设置此日期时间:

2019-05-20 15:47:19

我得到的是以下错误:

datetime_to_parse = '2019-05-20 15:47:19'
my_model.start = timezone.make_aware(datetime.strptime(datetime_to_parse, "%Y-%m-%d %H:%M:%S"))
my_model.save()

由于我正在调用make_aware,因此我希望可以使用django设置中指定的时区在带时区的datetime中自动转换datetime。

我的django设置包含以下定义:

DateTimeField Event.start received a naive datetime (2019-05-20 15:47:19) while time zone support is active

我做错什么了吗?

0 个答案:

没有答案