在Windows上的官方python2.5是用Visual构建的工作室.Net2003,它使用32位时间,所以当年份大于2038年时,它只会给出例外。在
虽然这在Python2.6中已经修复(在VS2008中将时间更改为64位),但我还是希望使用2.5,因为已经为它编译了许多模块。在
所以我的问题是——有没有什么解决方案可以让我的程序轻松地处理2038年及以上的问题,同时仍然使用官方的Python2.5?例如一些预先制作的库,如"time64"
或“longtime”等。。。在
请不要告诉我升级到2.6+或忘记错误-我有我的理由需要使它工作,这就是为什么我张贴在这里的问题。在
我发现的最好的解决方案是获取Python2.5的源代码副本,然后使用默认时间为64位的编译器重新编译时间模块,例如VS2005或VS2008(也可以配置C运行时以防止并行问题)。在
我不想听起来老套,但为什么不:
编辑: 澄清一下:(我是认真的-我不是故意开玩笑的)
从现在到2038年,您可以无限期地将Python升级到2.6(或更高版本)。也许在2012年。也许在2015年。也许在2037年。在
如果您知道应用程序中Python timestamp变量之间的差异(我不是一个Python用户),那么下面这些似乎是需要考虑的重要方面:
如果答案是有利的,只需使用带有2038错误的常规时间戳。您必须将其与重新设计/重构的数量进行比较,以使您的应用程序使用备用时间戳(例如,数据库时间戳字符串或其他任何东西)。在
标准库中的
datetime
模块应该可以正常工作。您需要从模块time
中得到什么,datetime
没有提供的内容?在相关问题 更多 >
编程相关推荐