Django现在的时区和内置的时区有什么不同?

  • 本文关键字:时区 内置 Django python django
  • 更新时间 :
  • 英文 :


我刚刚注意到:

>>> import datetime
>>> from django.utils import timezone
>>> (datetime.datetime.now(tz=datetime.timezone.utc) - timezone.now()).microseconds
999989
>>> (datetime.datetime.now(tz=datetime.timezone.utc) - timezone.now()).seconds
86399
>>> 24*60*60
86400
>>> (datetime.datetime.now(tz=datetime.timezone.utc) - timezone.now()).days
-1
>>> timezone.now()
datetime.datetime(2022, 11, 17, 13, 1, 36, 913132, tzinfo=<UTC>)
>>> datetime.datetime.now(tz=datetime.timezone.utc)
datetime.datetime(2022, 11, 17, 13, 1, 41, 913958, tzinfo=datetime.timezone.utc)

如何使用UTC "时区"获取当前时间?不同吗?为什么差是正的秒数,而正好是负的一天?

我可以用datetime.datetime.now(tz=datetime.timezone.utc)代替timezone.now()吗?

减法中的第二个值是在第一个值之后一微秒左右创建的。这是一个较晚的时间点。你用前面的时间点减去后面的时间点。产生负增量:

>>> datetime.datetime.now(tz=datetime.timezone.utc) - timezone.now()
datetime.timedelta(days=-1, seconds=86399, microseconds=999981)

如果你只看一天或微秒的一部分,这看起来是一个巨大的差异。但这只是timedelta表示过去的一小部分秒的方式。它是减去一天加上86399秒和999981毫秒。参见Python timedelta对象的负值。

最新更新