Finding correct strftime format dynamically?

97 Views Asked by At
from datetime import datetime, timedelta, date    
        
DateTime = "2021-05-25T13:52:50.980437-04:00"
String_Format = '%Y-%m-%dT%H:%M:%S%z'

Error Message:

time data '2021-05-25T13:52:50.980437-04:00' does not match format '%Y-%m-%dT%H:%M:%S%z'

How can I reliably figure out the datetime formats for any datetime format that comes into my data sets?

1

There are 1 best solutions below

0
ykhrustalev On

try checking several known formats in a loop

from datetime import datetime

def parse(v):
  for fmt in ('%Y-%m-%dT%H:%M:%S%z', '%Y-%m-%dT%H:%M:%S.%f%z'):
    try:
      return datetime.strptime(v, fmt)
    except ValueError as e:
      continue
    raise e

parse('2021-05-25T13:52:50.980437-04:00')

also, in your particular example, you are missing %f