python – Converting string into datetime

python – Converting string into datetime

datetime.strptime is the main routine for parsing strings into datetimes. It can handle all sorts of formats, with the format determined by a format string you give it:

from datetime import datetime

datetime_object = datetime.strptime(Jun 1 2005  1:33PM, %b %d %Y %I:%M%p)

The resulting datetime object is timezone-naive.

Links:

Notes:

  • strptime = string parse time
  • strftime = string format time
  • Pronounce it out loud today & you wont have to search for it again in 6 months.

Also, as seen in a comment made by @Izkata, if you want a date instead of a datetime, going through datetime handles it nicely: datetime.strptime(Jun 1 2005, %b %d %Y).date() == date(2005, 6, 1)

Use the third party dateutil library:

from dateutil import parser
parser.parse(Aug 28 1999 12:00AM)  # datetime.datetime(1999, 8, 28, 0, 0)

It can handle most date formats, including the one you need to parse. Its more convenient than strptime as it can guess the correct format most of the time.

Its very useful for writing tests, where readability is more important than performance.

You can install it with:

pip install python-dateutil

python – Converting string into datetime

Check out strptime in the time module. It is the inverse of strftime.

$ python
>>> import time
>>> my_time = time.strptime(Jun 1 2005  1:33PM, %b %d %Y %I:%M%p)
time.struct_time(tm_year=2005, tm_mon=6, tm_mday=1,
                 tm_hour=13, tm_min=33, tm_sec=0,
                 tm_wday=2, tm_yday=152, tm_isdst=-1)

timestamp = time.mktime(my_time)
# convert time object to datetime
from datetime import datetime
my_datetime = datetime.fromtimestamp(timestamp)
# convert time object to date
from datetime import date
my_date = date.fromtimestamp(timestamp)

Leave a Reply

Your email address will not be published. Required fields are marked *