【发布时间】:2010-10-24 19:05:58
【问题描述】:
Windows 上的官方 Python 2.5 是使用 Visual Studio.Net 2003 构建的,它使用 32 位 time_t。因此,当年份 > 2038 时,它只会给出例外情况。
虽然这在 Python 2.6 中已修复(在 VS2008 中将 time_t 更改为 64 位),但我想使用 2.5,因为已经为它编译了许多模块。
所以这是我的问题 - 是否有任何解决方案可以轻松让我的程序处理年份 > 2038 并仍在使用官方 Python 2.5?例如一些预制库,如"time64" 或“longtime”等...
请不要告诉我升级到 2.6+ 或忘记这个错误 - 我有理由需要让它工作,这就是我在这里发布问题的原因。
【问题讨论】:
-
2038 年还有很长的路要走……别担心。 笑话 -
人们在 80/90 年代曾经认为 2000 年有很长的路要走,这就是我们有 Y2K 错误的原因......
-
将日期存储为字符串,例如:“20080122”。通过删除多余的零来优化它。这样就变成了:“8-12-2”。您知道现在是 2000 年,因此不需要 2。之后将其存储在 XML 文件中以便于访问:
如果您在整个应用程序中使用它,那么您将没有问题,也不需要内置日期类型。8 12 2 thu day-of-week> -
你指的是什么 Python 模块/函数/类?能给个代码示例吗?
-
@dalke:我认为答案很简单——如果你想修复一个大型系统的小错误,你不会想升级整个运行时解释器,这就是我的情况。例如,假设您正在维护一个 Web 服务站点(并且已经安装了许多扩展);一些用户告诉你时间没用,他们希望修复它,但你不想升级 python,因为更多的用户可能会因为升级而遇到麻烦。一切都是为了稳定和降低风险。
标签: python time python-2.5 time-t year2038