


This function returns the currentĭate and time as a naive datetime when USE_TZ = False and as an awareĭatetime when USE_TZ = True. Independently of the value of USE_TZ, you may findĭ() useful. If you’re writing a pluggable application that’s expected to work
#Different time zones code#
Generally, the correct solution is to change your code to use an aware
#Different time zones how to#
You’ll quickly learn how to avoid invalid You’re using naive datetimes where Django expects aware datetimes. When you enable time zone support, you’ll encounter some errors because This shields you from subtle and unreproducible bugs around When time zone support is enabled, Django uses a more accurate model This can be done incrementally.ĭ defines some handy helpers for compatibilityįinally, in order to help you locate code that needs upgrading, Django raisesĪ warning when you attempt to save a naive datetime to the database:

So the second step is to refactor your code wherever you instantiate datetime With a naive datetime that you’ve created in your code. Since Django now gives you aware datetimes, you’ll getĮxceptions wherever you compare a datetime that comes from a model or a form To run into a few problems because it’s impossible to compare a naive datetime
#Different time zones full#
However, these conversions may fail around DST transitions, which means youĪren’t getting the full benefits of time zone support yet.

Objects in your code, Django makes them aware when necessary. At this point, things should mostly work. The first step is to add USE_TZ = True to your settingsįile. To enable it, set USE_TZ = True in your settings file. Time zone support is disabled by default. Solution to this problem is to use UTC in the code and use local time only when Or under bill your customers by one hour, twice a year, every year. This probably doesn’t matter for your blog, but it’s a problem if you over bill You’re likely to encounter errors twice a year, when the transitions happen. Many countries have a system of DST, where clocks are movedįorward in spring and backward in autumn. Practice to store data in UTC in your database. This is handy if your users live in more than one time zone and you want toĭisplay datetime information according to each user’s wall clock.Įven if your website is available in only one time zone, it’s still good Translates them to the end user’s time zone in templates and forms. UTC in the database, uses time-zone-aware datetime objects internally, and When support for time zones is enabled, Django stores datetime information in
