Convert string to datetime format in Python

Post date: Jun 25, 2015 12:52:58 PM

>>import pandas as pd >>import numpy as np

For a single string element you can do it by datetime package.

>>from datetime import datetime >>datetime.strptime('01-MAR-15', '%d-%b-%y')

datetime.datetime(2015, 3, 1, 0, 0)

To make it work for list of string, just apply this.

>>date_list = ['01-MAR-15', '12-APR-16'] >>[datetime.strptime(s, '%d-%b-%y') for s in date_list ]

[datetime.datetime(2015, 3, 1, 0, 0), datetime.datetime(2016, 4, 12, 0, 0)]

For pandas object, just use method to_datetime

>>df = pd.DataFrame({'order_day':['01-MAR-15', '12-APR-16']}) >>df

0

1

order_day

01-MAR-15

12-APR-16

>>order_day = pd.to_datetime(df.order_day, format = '%d-%b-%y') >>order_day

0 2015-03-01 1 2016-04-12 Name: order_day, dtype: datetime64[ns]

The day difference can be found by specifying .days

>>(order_day[1] - order_day[0]).days

408

The conversion format can be found from this table

https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior