Search code examples
pythondatetimetimestrftimestrptime

Converting a string to a formatted date-time string using Python


I'm trying to convert a string "20091229050936" into "05:09 29 December 2009 (UTC)"

>>>import time
>>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S")
>>>print s.strftime('%H:%M %d %B %Y (UTC)')

gives AttributeError: 'time.struct_time' object has no attribute 'strftime'

Clearly, I've made a mistake: time is wrong, it's a datetime object! It's got a date and a time component!

>>>import datetime
>>>s = datetime.strptime("20091229050936", "%Y%m%d%H%M%S")

gives AttributeError: 'module' object has no attribute 'strptime'

How am I meant to convert a string into a formatted date-string?


Solution

  • time.strptime returns a time_struct; time.strftime accepts a time_struct as an optional parameter:

    >>>s = time.strptime(page.editTime(), "%Y%m%d%H%M%S")
    >>>print time.strftime('%H:%M %d %B %Y (UTC)', s)
    

    gives 05:09 29 December 2009 (UTC)