当前自纪元以来的毫秒数为1395245378429
;在Unix(64位/Ubuntu/Python 2.7)上,您可以执行以下操作:
>>> t = 1395245378429
>>> type(t)
<type 'int'>
>>> t = 1395245378429L
>>> type(t)
<type 'long'>
>>> int(t)
1395245378429
>>> type(int(t)
<type 'int'>
但在Windows上(也适用于64位/Python 2.7),会出现以下情况:
>>> t = 1395245378429
>>> type(t)
<type 'long'>
>>> int(t)
1395245378429L
>>> type(int(t))
<type 'long'>
以下是一些奇怪的观察结果:
- 在Windows上,
int(<long>)
返回一个长整型 - 相同的数字在Windows上被视为长整型,在Unix上则为整型
我在文档中没有看到明确说明这是正确的行为;是否有(正确的)方法将长整型转换为整型(即可用于需要整型参数的方法)。
int(20000000000000000000)
将返回一个long
,因为该数字大于2 ** 64
。从int
到long
的转换几乎总是会默默地执行,因为除了操作性能之外,行为上不应该有任何显着变化。我不知道是否存在在整数类型之间引发OverflowError
的情况。 - Bakuriu