2010-05-19 6 views
0

Case 1pourquoi datetime.now() affiche un résultat invalide lorsqu'il est exécuté dans le serveur django?

>>> datetime.__file__ 
'/usr/lib/python2.6/lib-dynload/datetime.so' 
>>> print datetime.datetime.now() 
2010-05-19 19:45:40.202634 

Case 2

from django.db import models 
import datetime 
print datetime.__file__ 
print "--------------------------", datetime.datetime.now() 

----------- Résultat --------

Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
Validating models... 
/usr/lib/python2.6/lib-dynload/datetime.so 
-------------------------- 2010-05-19 09:16:43.987508 
0 errors found 
+0

Euh ... ça me va bien. Pouvez-vous éditer votre question pour expliquer comment cette sortie ne répond pas à vos attentes? – jcdyer

+2

Différence de fuseau horaire? –

+0

oui il semble que ce soit dû à diff diffuse fuseau horaire. mais comment résoudre le problème avec le serveur django? – shahjapan

Répondre

3

Comme le souligne Mark cela ressemble à un fuseau horaire pour le Japon:

>>> from dateutil import tz 
>>> from datetime import datetime 
>>> utc_time = datetime(2010, 5, 19, 9, 16, 43, tzinfo=tz.tzutc()) 
>>> jst_time = utc_time.astimezone(tz.gettz('Japan')) 
>>> print utc_time 
2010-05-19 09:16:43+00:00 
>>> print jst_time 
2010-05-19 18:16:43+09:00 

Standard datetime gérer le module seul naïf, vous pouvez ajouter un support de fuseaux horaires avec dateutil (en particulier constructeur dateutil.tz.tzlocal()).

+0

vous avez raison interne django gardait tzinfo de settings.Time_Zone, je me suis mis en Asie/Calcutta et ça a bien marché! – shahjapan

Questions connexes