почему datetime.now () показывает недопустимый результат при выполнении на сервере django? - PullRequest
0 голосов
/ 19 мая 2010

Дело 1

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

Дело 2

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

----------- Результат --------

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

1 Ответ

3 голосов
/ 19 мая 2010

Как отметил Марк, похоже, что разница часовых поясов для Японии:

>>> 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

Стандартный datetime модуль обрабатывает только наивное время, вы можете добавить поддержку часовых поясов с помощью dateutil (особенно конструктор dateutil.tz.tzlocal()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...