DataSet 读写xml 之后 时间格式多了时区的问题
故事是这样,我的XML头部,有这样一个字段,datatime,
<xs:schema id="PkgDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 然后我用D DataSet dataSet =null;
dataSet.WriteXml("e:tmp.xml");
情况变成这样:
多了+08:00
显然是时区的问题,然后到网上找了好多文章,这还是个相当不好处理的问题.
大意是这样: dataSet = new DataSet(); 此时的dataSet的locate = "zh-CN" 可是,执行完 dataSet.ReadXml(m_strUpdataInfoPath); 之后,变成:en-US
然后,这个贴子里说得清楚: http://stackoverflow.com/questions/427439/dataset-locale-what-it-does Sounds like a known TimeZone issue: changing DataSet.Locale won't help.
我改了locate dataSet = new DataSet();
所以,问题应该是出在xml的序列器上. 这个序列器,认为那个xml是个美国人做的. 这就不好办了. 当然,网上有人自己写序列器,这个太难了,我也不会.
所以,从上面的stack overflow的贴子里找到提示,这样处理: dataSet.Tables[0].Columns["SubFileCreateDate"].DateTimeMode = DataSetDateTime.Unspecified; 然后解决了. 很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |