Search code examples
pythonfacebooktimepython-dateutil

How to parse time retrieved from Facebook Graph into 12 hour format?


When I pull events start times from Facebook Graph in comes in this form:

2017-09-26T18:00:00+0300

I'd like to convert it into readable format so I use this:

readable_event_date = dateutil.parser.parse(event_date).strftime('%a, %b %d %Y %H:%M:%S')

and it comes out like this:

Tue, 26 Sep 2017 18:00:00

Which is good but it loses the offset from UTC and I'd like it in AM PM format.

Thus, I would like it like this:

Tue, 26 Sep 2017 9:00 PM

Solution

  • To get into 12 hours format and keep offset from UTC for printing :

    from dateutil.parser import parse
    
    event_date = '2017-09-26T18:00:0+0300'
    
    date = parse(event_date)
    offset = date.tzinfo._offset
    
    readable_event_date = (date + offset).strftime('%a, %b %d %Y %I:%M:%S %p')
    
    print(readable_event_date)
    

    Output:

    'Tue, Sep 26 2017 09:00:00 PM'