Skip to content

Instantly share code, notes, and snippets.

@bryanchow
Created September 5, 2011 20:34
Show Gist options
  • Save bryanchow/1195854 to your computer and use it in GitHub Desktop.
Save bryanchow/1195854 to your computer and use it in GitHub Desktop.
Convert Django DateTimeField values to ISO format in UTC
# Convert Django DateTimeField values to ISO format in UTC
# Useful for making Django DateTimeField values compatible with the
# jquery.localtime plugin.
#
# https://gist.github.com/1195854
from pytz import timezone, utc
from django.conf import settings
# A pytz.timezone object representing the Django project time zone
# Use TZ.localize(mydate) instead of tzinfo=TZ to ensure that DST rules
# are respected
TZ = timezone(settings.TIME_ZONE)
def utcisoformat(dt):
"""
Return a datetime object in ISO 8601 format in UTC, without microseconds
or time zone offset other than 'Z', e.g. '2011-06-28T00:00:00Z'.
"""
# Convert datetime to UTC, remove microseconds, remove timezone, convert to string
return TZ.localize(dt.replace(microsecond=0)).astimezone(utc).replace(tzinfo=None).isoformat() + 'Z'
@BigglesZX
Copy link

Thanks for this!

@1a8e
Copy link

1a8e commented Jul 31, 2020

Thanks for the snippet!

@svanscho
Copy link

svanscho commented Nov 5, 2020

'Not naive datetime (tzinfo is already set)')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment