由于C和C++中关于日期的数据结构的限制,如time_t 、CTime等,都只能表示到2038年1月18日,超过这个时间将无法表示,导致程序出现不可预料的问题。
而这两类数据类型在现有程序中被大量使用,没有引起广泛注意。
解决办法是采用替代的数据类型,如使用 __time64_t 、COleDateTime 或boost中的时间等第三方类库。
另:从VS2005(VC8)开始 time_t和CTime默认采用64位空间来保存时间,解决了2038年问题。
采用VC6开发的软件,需要及时移植到VC8或更高版本重新编译。