Home > Back-end >  Get datetime format from string python
Get datetime format from string python

Time:01-27

In Python there are multiple DateTime parser's which can parse a date string automatically without proving the datetime format. My problem is that i dont need to cast the datetime, but i need just the datetime format.

Example: From "2021-01-01" i want somethings like "%Y-%m-%d" or "yyyy-MM-dd".

My only idea was to try casting with different formats and get the successful one, but i dont want to list every possible formats.

I'm working with pandas so i can use both methods that works with series or just string DateTime parser.

Any ideas?

CodePudding user response:

In pandas, this is achieved by pandas._libs.tslibs.parsing.guess_datetime_format

from pandas._libs.tslibs.parsing import guess_datetime_format

guess_datetime_format('2021-01-01')

# '%Y-%m-%d'

As there will always be an ambiguity on the day/month, you can specify the dayfirst case:

guess_datetime_format('2021-01-01', dayfirst=True)
# '%Y-%d-%m'

CodePudding user response:

Please see which one suits best for you:

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

df['Column'] = pd.to_datetime(df['Column']).dt.date

df['Column'] = pd.to_datetime(df['Column']).dt.normalize()

the datatype of first two options will be object;

while the 3rd one with normalize will be datetime.

CodePudding user response:

You can try this way, I am not sure though

    for col in  df.select_dtypes(include['datetime64']).columns.tolist():
        df[col] = df[col].astype(str)
  •  Tags:  
  • Related