boost的date_time库会神不知鬼不觉的把linux下面的环境变量TZ设成是GMT,使得系统中其他部分代码算时间出错了。看来以后用date_time要小心了。不过,如果整个系统都用boost::date_time的话就应该没有问题了。可以这样实施起来改动就比较大了。解决的办法,现在想到的就是试试看能不能在系统初始化的时候将boost::date_time的时区改成本地时区,这样环境变量TZ可能就跟原来一致了。
后记:
后来经过单元测试,发现不是boost::date_time这个库引起系统时间的改变,而是另外一个库log4cxx。
总结经验:
1、使用第三方库时需要验证一下是否跟现有的具有类似功能的代码发生冲突,以免导致出现结果不一致的情况。
2、定位错误的工作需要严谨一些。如果bug定位出错,不但bug得不到及时解决,而且还会使解决bug的总代价提高很多。
后记:
后来经过单元测试,发现不是boost::date_time这个库引起系统时间的改变,而是另外一个库log4cxx。
总结经验:
1、使用第三方库时需要验证一下是否跟现有的具有类似功能的代码发生冲突,以免导致出现结果不一致的情况。
2、定位错误的工作需要严谨一些。如果bug定位出错,不但bug得不到及时解决,而且还会使解决bug的总代价提高很多。