Ryan

I too went through USE_TZ and time zones etc but too long ago to remember enough to answer your questions with any authority. However this works for me ...

USE_TZ = True
TIME_ZONE = 'UTC'

At 18:23 (AESummertime) here in Melbourne Australia I just created a new record in my Postgres 9.3 database. FWIW the Ubuntu 12.04 database server runs on local time. I'm using a Windows 8.1 client and Django 1.8.8 dev server.

The model save() method fills in a datetime field if it is blank. It uses my when() utility. See below.

Examining the new record in the database the date/time saved is ...

2016-01-07 18:23:53.710608+11

There is enough information there to represent a UTC time. Simply subtract 11 hours. Then add whatever for another timezone. I don't know if the Django framework does that automatically based on the client system time but I'm not too concerned about that. I only care that we are are not losing date/time data.

My when() utility was called by save() without argument. It goes like this ...

def when(days=0):
    """Function to return a non-naive datetime."""
    dday = datetime.now(tz=pytz.utc)
    if days == 0:
        return dday
    ttime = datetime.time(dday)
    return timezone.make_aware(datetime.combine(
        datetime.fromordinal(dday.toordinal() + days), ttime), pytz.utc)

HTH

Mike


On 7/01/2016 2:36 PM, Ryan Causey wrote:
Hello,

I'm new to Python and Django so please bear with me on this one.

I've been reading the Django docs, googling, and searching this mailing
list on the proper configuration and usage of Django when USE_TZ = True.
However, I'm still a bit fuzzy on things and would like clarification on
the following:

 1. The documentation says that when USE_TZ = True that "Django stores
    datetime information in UTC in the database, uses time-zone-aware
    datetime objects internally, and translates them to the end user’s
    time zone in templates and forms." Does this mean that the TIME_ZONE
    setting in settings.py should be UTC? Or should it be the timezone
    in which the database server is located?
 2. I am using a postgresql database, and the installation defaulted the
    database's timezone to my local one. In support of Django storing
    all datetime information in UTC in the database, does the database's
    timezone needs to be set to UTC? Or is it correct for the database's
    timezone to be the local one?
 3. The documentation also says that one should use the UTC timezone in
    the code, and only convert to local time when dealing with end
    users. I take this to mean that in any code I write I should set
    tzinfo = UTC for all datetime objects I create programmatically and
    let Django translate them in forms and views to the end user's
    timezone automatically. Is this correct?

Thank you in advance for the help,

-Ryan Causey

--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to django-users+unsubscr...@googlegroups.com
<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to django-users@googlegroups.com
<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/b37291e8-3d99-49a4-8e9a-13a6639ef29b%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/b37291e8-3d99-49a4-8e9a-13a6639ef29b%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/568E1483.1010404%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.

Reply via email to