Python datetime.strptime - parse complicated string
Question: I want to make datetime from following string '2015-06-29T11:55:30.000000Z'.

I tried:

    
    
    import datetime
    print datetime.datetime.strptime("2015-06-29T11:55:30.000000Z", "%y-%m-%dT%H:%M:%S.000000Z")   
    

and I obtained following error:

    
    
    Traceback (most recent call last):
      File "x1.py", line 5, in <module>
        print datetime.datetime.strptime(date, "%y-%m-%dT%H:%M:%S.000000Z")   
      File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
        (data_string, format))
    ValueError: time data '2015-06-29T11:55:30.000000Z' does not match format '%y-%m-%dT%H:%M:%S.000000Z'
    

What I am doing wrong? How to parse it?


Answer: Capitalize `%Y`:

    
    
    import datetime as DT
    DT.datetime.strptime("2015-06-29T11:55:30.000000Z", "%Y-%m-%dT%H:%M:%S.000000Z")   
    # datetime.datetime(2015, 6, 29, 11, 55, 30)
    

`%y` matches 2-digit years -- [years without century as a decimal number
year](https://docs.python.org/2/library/datetime.html#strftime-and-strptime-
behavior). `%Y` matches 4-digit years.

