2016-07-20 8 views
-2

Ich verwende Python, um 2 Tage zu einem bestimmten Datum in Python hinzuzufügen. Mit datetime.now() kann ich 2 Tage hinzufügen. Aber kein bestimmtes Datum verwenden. Hier ist der Code:Wert erhalten Fehler beim Hinzufügen von Tagen zu einem bestimmten Datum

import datetime 

start_date = datetime.datetime.strptime('7/18/2016','%m/%d/%y') 
date_to_start_predicting = start_date + datetime.timedelta(days=2) # Add 2 days 
print(date_to_start_predicting) 

Aber ich erhalte den folgenden Fehler:

Traceback (most recent call last): 
    File "C:/Users/Admin/Projects/DateAdd.py", line 3, in <module> 
    start_date = datetime.datetime.strptime('7/18/2016','%m/%d/%y') 
    File "C:\Python27\lib\_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: 16 

Was könnte der Grund sein?

Antwort

2

Sie analysieren die Zeichenfolge '7/18/2016' mit dem Format '%m/%d/%y'.

%y versucht, den Jahrteil im 2-stelligen Format zu parsen (das Jahr Ihres Datumsobjekts ist also 1920). Also 2016 wird 20 und 16 bleibt übrig, was der Fehler sagt.

Sie sollten %Y (die das Jahr im 4-stelligen Format analysiert) statt %y verwenden.

0

verwenden:

start_date = datetime.datetime.strptime('7/18/2016','%m/%d/%Y') 

(Ich habe das Klein geändert y zu einem Groß Y.)

0

Es ist nichts falsch mit dem "Hinzufügen" -Teil. Sie verwenden nur die falsche Formatierung.

sollten Sie ändern es:

start_date = datetime.datetime.strptime('7/18/2016','%m/%d/%Y') 

wie Sie here sehen können.

Ich habe y zu Y geändert, da Sie 4 Ziffern Jahr verwenden.

Verwandte Themen