As I understand your question, you do not know for sure in advance which language will be used. This can lead to insoluble problems. ("10-11-12" may be October 11, 2012 or November 12, 2010 or ...)
So, you should have a limited, distinguishable set of possible formats. Then you can do:
POSSIBLE_FORMATS = ('%d.%m.%Y', '%Y-%m-%d', '...')
for f in POSSIBLE_FORMATS:
try:
d = datetime.date.strptime(date_str, f)
break
except ValueError:
continue
raise ValueError
booking = Booking.objects.get(booking_number='BN34D', booking_date=d)
source
share