139

I need to convert date string "2013-1-25" to string "1/25/13" in python. I looked at the datetime.strptime but still can't find a way for this.

Bhargav Rao
  • 45,811
  • 27
  • 120
  • 136
Chamith Malinda
  • 4,129
  • 5
  • 22
  • 28
  • 1
    You can use dateutil.parser.parse() function which converts random strings to datetime object without specifying their input formats – Nikhil Redij Jun 13 '19 at 09:34

2 Answers2

258

I assume I have import datetime before running each of the lines of code below

datetime.datetime.strptime("2013-1-25", '%Y-%m-%d').strftime('%m/%d/%y')

prints "01/25/13".

If you can't live with the leading zero, try this:

dt = datetime.datetime.strptime("2013-1-25", '%Y-%m-%d')
print '{0}/{1}/{2:02}'.format(dt.month, dt.day, dt.year % 100)

This prints "1/25/13".

EDIT: This may not work on every platform:

datetime.datetime.strptime("2013-1-25", '%Y-%m-%d').strftime('%m/%d/%y')
Devesh Kumar Singh
  • 19,767
  • 5
  • 18
  • 37
eumiro
  • 194,053
  • 32
  • 286
  • 259
30

If you can live with 01 for January instead of 1, then try...

d = datetime.datetime.strptime("2013-1-25", '%Y-%m-%d')
print datetime.date.strftime(d, "%m/%d/%y")

You can check the docs for other formatting directives.

Alexander
  • 96,739
  • 27
  • 183
  • 184