#27082: Make timezone.localtime() default to timezone.now() when no value is
given
-----------------------------+--------------------------------------
Reporter: bmispelon | Owner: nobody
Type: New feature | Status: new
Component: Utilities | Version: 1.10
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-----------------------------+--------------------------------------
Comment (by aaugustin):
Replying to [comment:3 jdufresne]:
> I don't think this is about naive vs aware, but about accuracy.
I would say that it's mostly a matter of providing a complete, but not
redundant or overwhelming set of date/time/zones related APIs.
> If a server's time zone is different than `settings.TIME_ZONE`, then it
is important to be able to answer the question "what is today in the the
timezone of `settings.TIME_ZONE`?" accurately.
Actually the server's time zone doesn't matter for Django on Unix/Linux
because Django sets the process' time zone to the value defined by
`TIME_ZONE`, and that's the default time zone for the application.
There are two cases where the server's time zone matters:
- on Windows, it must match `TIME_ZONE` because Windows doesn't support
setting a process' time zone
- if `TIME_ZONE = None`, Django uses the server time zone
> Near midnight different time zones will have different values for
"today".
Yes, I guess that's the reason why Baptiste filed this ticket.
> I have the following two convenience functions in my application to help
make this job easier. For my application, they are always preferred over
`datetime.date.today()`, etc. They are heavily used.
>
> {{{
> def local_date():
> return timezone.localtime(timezone.now()).date()
>
>
> def local_time():
> return timezone.localtime(timezone.now()).time()
> }}}
Since `django.utils.timezone.localtime` is currently used to convert an
aware datetime to a specific time zone, we have a bit of a naming problem
here, but I'm +0 for adding the first of these two functions (under a name
to be defined).
I'm not +1 because I believe that it's hard to get that kind of code right
if you don't understand what you're doing, and writing these two one-
liners is a good way to make sure the developer knows what's going on.
--
Ticket URL: <https://code.djangoproject.com/ticket/27082#comment:7>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.a5be2bc9540d58a7c4d19219a4d4572f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.