1  /  1  页   1 跳转 查看:1166

求助! 合格证上传后 制造日期和生产日期 发生变化,差8个小时

求助! 合格证上传后 制造日期和生产日期 发生变化,差8个小时

如题:

合格证,打印正常,上传后,在数据中心查询显示的制造日期和生产日期比合格证打印的日期少一天

上传的制造日期为2009-12-14日
刚数据中心网站上查询显示的制造日期就是,2009-12-13 :16:00:00 后退了8个小时

经过试验发现 如果上传电脑的时区选在世界标准时区,就不会发生此问题!

请问数据中心是按照哪个时间来解析制造日期的?
 

回复:求助! 合格证上传后 制造日期和生产日期 发生变化,差8个小时

此问题由日历时间结构time_t引起,系C语言经典问题。

使用gSoap生成的C++ SOAP代理使用日历时间time_t,日历时间表示“从一个标准时间点到此时的时间经过的秒数”。
标准时间点采用世界标准时间UTC (即格林威治标准时间GMT)表示。
机动车合格证数据中心数据库系统仅保存日历时间。


中国内地时间与UTC的时差为+8,因此使用C++编写程序时应注意此时差。
如上传时计算不正确,则服务器保存的“差值秒数”也将存在问题。此时即会出现形如相差8小时的情况。

解决方法为上传时生成正确的time_t结构。

以Visual C++为例,时间生成应编写如下代码:

  //日期时间型字段使用示例
  tm  pt;
  pt.tm_year=2009-1900;
  pt.tm_mon=0;
  pt.tm_mday=1;
  pt.tm_hour=0;
  pt.tm_min=0;
  pt.tm_sec=0;
  pt.tm_isdst=0;
  time_t clzzrq=_mkgmtime(&pt);
  certificateInfo->CLZZRQ=clzzrq;

C/C++涉及过多低层操作,建议开发应用类系统时慎重选用此类工具
最后编辑00x0 最后编辑于 2009-12-14 18:58:21
 

回复:求助! 合格证上传后 制造日期和生产日期 发生变化,差8个小时

解决!谢谢
 
1  /  1  页   1 跳转

版权所有 www.vidc.info  国家机动车合格证数据中心网

Powered by Discuz!NT 2.0.1214 (Licensed)    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.015625 second(s) , 4 queries. 京ICP备06025868号
返顶部