【发布时间】:2013-02-27 01:28:23
【问题描述】:
我们有一个定制的 datetime C++ 类,它以自纪元以来经过的秒数表示时间。这存储为 int64。此类提供了许多帮助函数来读取和写入各种类型的日期时间格式。
不幸的是,它无法处理纪元之前的日期,因为它的方法依赖于 gmtime() 和 mktime() 进行许多操作,而我们的 Windows 系统不支持纪元之前的日期。有谁知道在 Windows 上支持负值的 gmtime 和 mktime 的替换。
这个限制的一个例子是我们的应用程序无法存储 1970 年之前的生日,这是因为每个日期都必须使用这个类。
我不清楚我在问什么,这是因为我对日期时间实现/使用的了解有限,而且我不愿意理解那个庞大的遗留类,所以如果你觉得这个问题可以用另一种方式来表达,或者我可能会寻找不同的东西随时提出建议。
【问题讨论】:
-
你需要走多远。追溯到 1900 年以后可能会开始变得非常棘手。
-
我们不想超过 1900,如果这样可以通过更少的代码更改解决问题。
标签: c++ c windows datetime epoch