pythondaterfc3339

Convert date to string in RFC 3339 format


I am trying to generate a date string for yesterday. I am not sure how to generate it in RFC 3339 format.

I have

from datetime import date, timedelta

yesterday = date.today() - timedelta(1)
yesterday.isoformat()

which formats the date as:

"2012-12-04"

How can I write the formatter function to get RFC 3339 format?


Solution

  • yesterday is a datetime.date object. You could convert it to datetime.datetime object if you need time in the output:

    from datetime import datetime, time, timedelta
    
    yesterday = datetime.utcnow() - timedelta(days=1)
    dt = datetime.combine(yesterday.date(), time(0, 0)) # midnight
    rfc3339str = dt.isoformat() + "Z"
    

    This should work both Python 2 and 3.