3

I tried to convert string into a datetime object in Python, and I can't find anything wrong with my format %Y-%m-%dT%H:%M:%S%Z.%f.

import datetime
datetime.datetime.strptime('2019-11-19T17:22:23.171833', '%Y-%m-%dT%H:%M:%S%Z.%f')


  File "/var/lang/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/var/lang/lib/python3.7/_strptime.py", line 359, in _strptime
    (data_string, format))

ValueError: time data '2019-11-19T17:22:23.171833' does not match format '%Y-%m-%dT%H:%M:%S%Z.%f'

user1187968
  • 7,154
  • 16
  • 81
  • 152
  • Consider removing the unnecessary time zone directive and leave out: `datetime.datetime.strptime('2019-11-19T17:22:23.171833', '%Y-%m-%dT%H:%M:%S.%f')` – Arn Nov 19 '19 at 17:39

3 Answers3

2

Your format should be:

'%Y-%m-%dT%H:%M:%S.%f'
Óscar López
  • 232,561
  • 37
  • 312
  • 386
1

This looks like isoformat, so consider to use the special case convenience:

>>> from datetime import datetime
>>> datetime.fromisoformat('2019-11-19T17:22:23.171833')
datetime.datetime(2019, 11, 19, 17, 22, 23, 171833)
wim
  • 338,267
  • 99
  • 616
  • 750
0

%Z - Time zone name (empty string if the object is naive).

Should this be included?

Elliot G
  • 79
  • 8