我刚刚注意到:
>>> 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“时区”获取当前时间的两个选项有何不同?为什么差别是秒的正数,但有一天正好是负的呢?
我可以用timezone.now()代替datetime.datetime.now(tz=datetime.timezone.utc)吗?
发布于 2022-11-17 13:16:13
减法中的第二个值是在第一个值之后创建一个微秒左右。所以这是以后的时间点。你正在从早期的时间点中减去时间的后一点。产生负的三角洲:
>>> datetime.datetime.now(tz=datetime.timezone.utc) - timezone.now()
datetime.timedelta(days=-1, seconds=86399, microseconds=999981)如果你只看其中的一天或微秒,这看起来是一个巨大的差别。但是,这只是timedelta表示过去一秒的一小部分的方式。它是负一天加 86399秒和999981毫秒。见Python timedelta object with negative values。
https://stackoverflow.com/questions/74475995
复制相似问题