naïve /nai-eev/
1. Lacking worldly experience, wisdom, or
judgement; unsophisticated.
Surely you're not naïve enough to believe
adverts!
…
http://en.wiktionary.org/wiki/naive
Slide 7
Slide 7 text
pytz
• The Olson Timezone Database
• pip install pytz
• taipei = pytz.timezone(‘Asia/Taipei')
• Django depends on this for timezone support
http://pytz.sourceforge.net
Slide 8
Slide 8 text
USE_TZ
• USE_TZ = False
• Naïve objects with your default timezone
• USE_TZ = True
• Aware objects (Naïve ones generate warnings)
• Django makes a date/time aware automatically
when it’s retrieved from database
Slide 9
Slide 9 text
>>> from django.utils.timezone import *!
>>> print now()!
2014-01-21 11:09:14.960786+00:00!
>>> from django.conf import settings!
>>> print settings.USE_TZ!
True
django.utils.timezone
Slide 10
Slide 10 text
HTTP
• HTTP header doesn’t have a “Accept-Timezone”
field
• You need to manually set a request’s timezone if
you need timezone support
Slide 11
Slide 11 text
from django.utils.timezone import *!
from pytz import timezone!
!
taipei = timezone('Asia/Taipei')!
activate(taipei)!
!
print get_current_timezone_name()!
# Asia/Tapei!
!
with override(utc):!
print get_current_timezone_name()!
# UTC!
!
deactivete()
Slide 12
Slide 12 text
{# "value" is a date/time object #}!
!
{% load tz %}!
!
{# Neither of these respect USE_TZ #}!
{% localtime on %}!
{{ value }}!
{% endlocaltime %}!
!
{% localtime off %}!
{{ value }}!
{% endlocaltime %}