当前位置:  开发笔记 > 编程语言 > 正文

Django/python - 消除关于日期和时区意识的混淆

如何解决《Django/python-消除关于日期和时区意识的混淆》经验,为你挑选了0个好方法。

我一直在使用python/django中的日期进行广泛的工作.为了解决各种用例,我一直在盲目地尝试各种不同的方法,直到其中一个工作,而没有学习各种功能如何工作的逻辑.

现在是关键时刻.我想问一下关于django/python中日期和时区错综复杂的几个问题.

如何解释datetime已有时区的对象?

为了澄清,让我说我做以下事情:

>>> generate_a_datetime()
datetime.datetime(2015, 12, 2, 0, 0, tzinfo=)
>>>

控制台输出对我来说似乎不明确:

Q1)这个datetime对象说的是2015-12-02- generate_a_datetime告诉我的功能是什么?是不是说"一个站在加拿大东部看着他的日历的人看到了"2015-12-02"?或者它的意思是"这是"2015-12-02 UTC"...但是别忘了调整这个到加拿大东部时区!"

django.utils.timezone.make_aware让我困惑.

例如:

>>> from django.utils import timezone
>>> import pytz
>>> tz = pytz.timezone('Canada/Eastern')
>>> now_unaware = datetime.datetime.now()
>>> now_aware_with_django = timezone.make_aware(now_unaware, tz)
>>> now_aware_with_datetime = now_unaware.replace(tzinfo=tz)
>>> now_unaware
datetime.datetime(2015, 12, 2, 22, 1, 19, 564003)
>>> now_aware_with_django
datetime.datetime(2015, 12, 2, 22, 1, 19, 564003, tzinfo=)
>>> now_aware_with_datetime
datetime.datetime(2015, 12, 2, 22, 1, 19, 564003, tzinfo=)
>>> 

该对象now_aware_with_djangonow_aware_with_datetime似乎表现相似,但他们的控制台输出表明它们是不同的.

Q2)now_aware_with_django和之间有什么区别now_aware_with_datetime

Q3)我如何知道是否需要使用timezone.make_awaredatetime.replace

天真的日期时间与UTC日期时间

UTC表示时间值没有变化."天真"似乎意味着时间没有与之相关的时区.

Q4)naive和UTC日期时间有什么区别?看起来它们完全相同 - 既没有对实际时间值进行任何转换.

Q5)我怎么知道我什么时候想要使用天真时间,以及什么时候想要使用UTC时间?

如果我能得到所有5个问题的答案,那将是非常出色的.非常感谢!

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有