datetime.utcnow()在Python 2和Python 3之间是如何变化的?

时间:2015-07-20 23:21:33

标签: python python-2.7 datetime python-3.x

我在Python 2.7.6和3.4.3中都在使用Python的datetime.datetime.utcnow()函数,我发现了一些有趣的东西:Python27中的微秒值总是000。

我在Windows 7 Professional(64位)计算机上。我的Python27安装是32位,我的Python34安装是64位。

在Python 2中,微秒总是000:

Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 7, 27, 55000)
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 7, 27, 991000)
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 7, 28, 279000)
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 7, 29, 7000)

在Python 3中,微秒值更合理:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 8, 32, 97893)
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 8, 32, 665950)
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 7, 20, 23, 8, 33, 322016)

任何人都可以向我提供有关2到3之间更改内容的信息或者为什么会发生这种情况?我还没有找到文档中的任何内容,我也不知道从哪里开始查看python源代码。

此外,如何在Python2中获得微秒的日期时间准确度?由于文档中有关系统时钟被回滚的警告,我对使用time.time()犹豫不决。由于我只对增量感兴趣,我应该可以使用time.clock(),对吗?

0 个答案:

没有答案