WebService的时间问题,大家都注意一下
最近开发一款PDA产品,GPRS我用的是WebService与服务器端进行通信,直接通过DataTable传输数据。
本来一切顺利,在测试的时候却发现了一个问题,所有日期都少了一天,比如8月21日变成了8月20日上午9点。这令我很费解
仔细检查了下代码,数据库中存储的数据正确
输出转换是DateTime.Parse(_DrugCertificate.Rows[0]["createtime"].ToString()).ToString("yyyy年MM月dd日")也没有问题。
尝试了下从数据库中直接读数据出来转换也一切正常。最终断定问题肯定是在WebService的XML格式上面
用浏览器打开查看了下格式如此:
<birthday>1982-05-09T00:00:00+08:00</birthday>
晕啊,之所以时间错误的原因在于.Net从WebService读时间出来的时候将+80区这个字段转换成时间了。
怎么解决这个问题? 就是在查询的时候记得用SQL语句转换下时间的格式。
大家注意下这个问题,很容易被忽略掉。