Why is it not possible to store DD-MM-YYYY format in date format?

Following the format of the solutions you have tried, a correct way to do it (not the most efficient) is:

import datetime

df["Date"] = [datetime.datetime.strptime(s, '%Y-%m-%d').strftime('%d-%m-%Y') for s in df["Date"]]

If you need more efficiency in the solution, the ideal would be to use vectorized operations, for example:

df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = df["Date"].dt.strftime("%d-%m-%Y")

Or in a single line:

df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d-%m-%Y")