Search code examples
pythonpython-3.xpandasdatetimeformat

Get datetime format from string python


In Python there are multiple DateTime parsers which can parse a date string automatically without providing the datetime format. My problem is that I don't need to cast the datetime, I only need the datetime format.

Example: From "2021-01-01", I want something 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 don't want to list every possible format.

I'm working with pandas, so I can use methods that work either with series or the string DateTime parser.

Any ideas?


Solution

  • In pandas, this is achieved by pandas.tseries.api.guess_datetime_format

    from pandas.tseries.api 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'