Django datetime.timedelta , wie kann seine subtrahieren von timezone.jetzt (), wenn Sie posssibly verschiedene sets

Ich habe Schwierigkeiten zu verstehen, Funktionen, Verwendung:

time = timezone.now() - datetime.timedelta(days=30)

Erstens die Zeitzone.jetzt() liefert die Zeit, die festgelegt ist, in Django ... jetzt die datetime.timedelta(days=30) ...

verwendet es die internen Einstellungen in django als set setting.py oder ein anderes.

Zweitens wenn dem so ist ... sollten: die variable Zeit nicht 30 Tage hinter der aktuellen Zeitzone.jetzt();

In der Funktion unten

def test_was_published_recently_with_old_question(self):
    """
    was_published_recently() should return False for questions whose
    pub_date is older than 1 day.
    """
    time = timezone.now() - datetime.timedelta(days=30)
    old_question = Question(pub_date=time)
    self.assertEqual(old_question.was_published_recently(), False)

wie funktioniert diese Herstellung von 1 Tag älter ... ich denke, mein Problem ist nicht das Verständnis

time = timezone.now() - datetime.timedelta(days=30) in seiner ganz

Ich würde wirklich zu schätzen die Hilfe. Ich bin neu in python und med-level-Programmierer ... aber nicht arbeitete viel mit der Zeit.

Führen Sie python manage.py shell und sehen, dass timezone.now() ist ein datetime Objekt, das erwartet wird, die Arbeit mit timedelta. Unrelated: stellen Sie sicher, dass USE_TZ=True so dass timezone.now() gibt ein bewusst datetime-Objekt, ansonsten das Ergebnis von .was_published_recently() können ungenau sein, siehe Finde wenn 24 Std. vergangen sind datetimes - Python

InformationsquelleAutor Curious Lambda | 2015-09-10

Schreibe einen Kommentar