I've created a ticket to propose a little change in the documentation :
https://code.djangoproject.com/ticket/16392

Yohan

2011/6/29 Yohan Boniface <yohanbonif...@gmail.com>

> 2011/6/28 Stephen Burrows <stephen.r.burr...@gmail.com>
>
>>
>> The "O" formatter - or more specifically, the "Z" formatter - does
>> include that bit of magic. Is there a particular reason for this?
>>
>
> I ask myself the same question. Why for the "Z" (and co) and not for the
> "c" ?
>
>
>> Also, if a timezone is assumed, wouldn't it make more sense to assume
>> the timezone of the project rather than UTC? Rather than noting an
>> inconsistency, can we make this consistent?
>
>
> Defining the default behaviour when the datetime is naive is not that easy,
> in my point of view.
>
> Here is the summary of what I understand (we are talking about the Django's
> dateformat util) :
>
> 1. when the datetime has a timezone, use it : this is what Django does, and
> it's fine.
> => In my point of view, the documentation should be clearer (about the fact
> that the "c" formatter, using isoformat, will add the timezone offset only
> for non naive datetime and about the fact that this behaviour is not
> consistent with other formatters)
> => I'll propose some little patch
>
> 2. when the datetime is naive, what to do ?
> => like I said, I think the answer is not that easy, and Django is not
> completely coherent on the subject
>
>  2.1 Do nothing
>  => this is what Django does for the "c" formatter (as using the
> .isoformat datetime method) [1]
>  => easier, clearer (no magic), but not so user friendly : it means that
> when dealing with naive datetimes, developpers have to manually add the
> timezone everytime (error-prone, not very DRY...)
>
>  2.2 Use the system local timezone
>  => this is what Django does for the "Z" and "O" formatters for example
> (using the time.timezone / .altzone function) [2] [3]
>  => basing the default timezone on the machine local one could be risky
> (and not so "cloud" aware...)
>
>  2.3 Use the settings.TIME_ZONE information
>  => I wonder why this setting is not used by Django here
>  => in theory, this sounds like a good default behaviour
>
>  2.4 Missing something ?
>
> And so the final question is : is there a "good" way to arbitrate the
> handling of naive datetime when formatting them ?
>
> [1]
> https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py<https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py#L126><http://piratepad.net/ep/search?query=L126>
> #L126<https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py#L126>
> [2]
> https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py<https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py#L269><http://piratepad.net/ep/search?query=L269>
> #L269<https://code.djangoproject.com/browser/django/trunk/django/utils/dateformat.py#L269>
> [3] 
> http://docs.python.org/library/time.html<http://docs.python.org/library/time.html#time.timezone><http://piratepad.net/ep/search?query=time.timezone>
> #time.timezone <http://docs.python.org/library/time.html#time.timezone>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to