python 'x Tage her' bis datetime

8

Ich habe Zeichenfolgen, die ein Datum im folgenden Format anzeigen:

%Vor%

Ich muss das mit python zu einem Datetime analysieren.

Es scheint, dass dateutil das nicht kann.

Gibt es einen Weg, es zu tun?

    
applechief 24.09.2012, 13:33
quelle

4 Antworten

7

Sicher kannst du es tun. Sie brauchen nur ein timedelta .

%Vor%

Nebenbei sieht es so aus: dateutil hat eine relativedelta , die sich wie ein Timedelta verhält, aber der Konstruktor akzeptiert auch months und years in den Argumenten (und anscheinend müssen die Argumente Ganzzahlen sein).

    
mgilson 24.09.2012, 13:38
quelle
6

Dies kann einfach mit timedelta s:

erfolgen %Vor%

Produzieren:

%Vor%

Dies erfordert zwar zusätzliche Arbeit, um mit Monaten / Jahren fertig zu werden - das Hinzufügen eines Monats zu einem Datum ist eine mehrdeutige Operation, aber es sollte eine einfache Ergänzung sein, wenn Sie wissen, was Sie damit meinen wollen.

Um eine tatsächliche Zeit zu erhalten, nehmen Sie einfach das Delta von datetime.datetime.now() .

    
Gareth Latty 24.09.2012 13:39
quelle
1

Da deine Argumente vor ungefähr 2 Tagen, vor 3 Monaten, vor 2 Jahren sind. Die folgende Funktion könnte hilfreich sein, um das genaue Datum für die Argumente zu erhalten. Sie müssen zuerst die folgenden Datumswerte importieren:

%Vor%

Dann implementieren Sie die Funktion unter

%Vor%

Sie können die Funktion dann wie folgt aufrufen:

%Vor%     
Simeon Babatunde 31.03.2017 11:39
quelle
0

völlig übertriebene Lösung, aber ich brauchte etwas flexibler:

%Vor%

Dies kann Dinge analysieren wie:

  • 2 days ago
  • in 60 seconds
  • 2 DAY and 4 Secs
  • in 1 year, 1 Month, 2 days and 4 MICRO
  • 2 Weeks 4 secs ago
  • 7 millis ago

Ein riesiges aber : Es vereinfacht Monat und Jahr auf 30 bzw. 365 Tage. Nicht immer was du willst, obwohl es für einige Fälle reicht.

    
estani 07.11.2013 11:45
quelle

Tags und Links