2017-07-24 3 views
0

Ich bin sehr neu in Python-Codierung. Ich habe versucht, das Anfangs- und Enddatum eines Monats zu erhalten und dann mit einer anderen Datumsspalte im selben Excel zu vergleichen.Wie konvertiert man strftime oder string format zu timestamp/Date in python?

Ich brauche nur das Datum in mm/dd/yy Format, aber brauche die Zeit nicht. Die final_month_end_date ist im Grunde ein String-Format, das ich mit einem aktuellen Datum vergleichen, aber es gibt mir eine Fehlermeldung,

"TypeError: Cannot compare type 'Timestamp' with type 'str'"

Ich habe auch versucht .timestamp() Funktion aber nichts. Wie kann ich dieses Problem lösen?

import datetime as dt 
import strftime 

now1 = dt.datetime.now() 
current_month= now1.month 
current_year= now1.year 
month_start_date= dt.datetime.today().strftime("%Y/%m/01") 
month_end_date= calendar.monthrange(current_year,current_month)[1] 
final_month_end_date= dt.datetime.today().strftime("%Y/%m/"+month_end_date) 

Antwort

0

Um eine Zeichenfolge in ein DateTime-Objekt zu konvertieren, verwenden Sie datetime.strptime. Sobald Sie das Datetime-Objekt haben, konvertieren Sie es in einen Unix-Timestamp mit time.mktime.

import time 
import datetime as dt 
from time import mktime 
from datetime import datetime 

now1 = dt.datetime.now() 
current_month= now1.month 
current_year= now1.year 
month_start_date= dt.datetime.today().strftime("%Y/%m/01") 
month_end_date= "30" 
final_month_end_date= dt.datetime.today().strftime("%Y/%m/"+month_end_date) 

# Use datetime.strptime to convert from string to datetime 
month_start = datetime.strptime(month_start_date, "%Y/%m/%d") 
month_end = datetime.strptime(final_month_end_date, "%Y/%m/%d") 

# Use time.mktime to convert datetime to timestamp 
timestamp_start = time.mktime(month_start.timetuple()) 
timestamp_end = time.mktime(month_end.timetuple()) 

# Let's print the time stamps 
print "Start timestamp: {0}".format(timestamp_start) 
print "End timestamp: {0}".format(timestamp_end) 
Verwandte Themen