出乎我的意料,它似乎至。
web81:~/webapps/dominicrodger2/dominicrodger$ python2.5 manage.py shell
Python 2.5.4 (r254:67916, Aug 5 2009, 12:42:40)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import settings
>>> settings.TIME_ZONE
'Europe/London'
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2009, 10, 15, 6, 29, 58, 85662)
>>> exit()
web81:~/webapps/dominicrodger2/dominicrodger$ date
Thu Oct 15 00:31:10 CDT 2009
而且让我的对象创建自动添加时间戳(使用auto_now_add
,我相信是的,我没有得到分心而写这个答案:-)
我使用TIME_ZONE
设置为即将不赞成)在我设定的时区显示创建时间。
如果您想将这些时间转换为您网站访问者的时区,则需要按照您提供的示例做更多的工作。如果您想进行大量时区转换以在您的网站访问者时区中显示时间,那么我强烈建议您将您的TIME_ZONE
设置设置为以UTC存储时间,因为这会使您的生活从长远来看更加轻松(您可以使用UTC偏移量,而不必担心夏令时)。
如果您有兴趣,我相信时区设置从TIME_ZONE
设置here。
编辑,每次您的评论,它不工作在Windows上,这是因为在Django的来源如下:
if hasattr(time, 'tzset'):
# Move the time zone info into os.environ. See ticket #2315 for why
# we don't do this unconditionally (breaks Windows).
os.environ['TZ'] = self.TIME_ZONE
time.tzset()
的Windows:
C:\Documents and Settings\drodger>python
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> hasattr(time, 'tzset')
False
的Linux:
web81:~$ python2.5
Python 2.5.4 (r254:67916, Aug 5 2009, 12:42:40)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> hasattr(time, 'tzset')
True
我只是试图在这里使用manage shell重复你的测试,它似乎没有......奇怪。 >>> datetime.datetime.now()datetime.datetime(2009,10,15,15,37,47,869000)>>>导入设置>>> settings.TIME_ZONE'Europe/Zurich'>>> datetime.datetime .now()datetime.datetime(2009,10,15,15,37,59,838000)>>> exit()PS D:\> date Thu Oct 15 15:38:25 TST 2009 – monkut 2009-10-15 06:41:07
无论如何,正如您所提到的这听起来像是一个好主意,只是使用UTC时间。 – monkut 2009-10-15 06:43:28
我不知道这是因为我发布的来源106-107行的评论。尝试运行'hasattr(time,'tzset')'。 – 2009-10-15 09:23:30