各位大神,本人碰到一个很棘手的问题。
在wsdl中的返回参数里定义了一个数组
<xs:element name="DiaryRecord" type="DiaryRecordDTO" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
<name>日志记录</name>
<description />
</xs:documentation>
</xs:annotation>
</xs:element>这个数组中有一个元素为xs:dateTime类型
<xs:element name="diaryTime" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>
<name>调查日志时间</name>
<description />
</xs:documentation>
</xs:annotation>
</xs:element>我用c#开发程序,怎么把时间返回到这个dateTime类型里,
标准的DateTime格式为:2018/3/16 0:55:29,我现在用string拼成yyyy-MM-dd hh:mm:ss的格式,直接转换成DateTime,传不到数组里,有什么办法吗?InstinctRes.responseBody.DiaryRecord[i] = new DiaryRecordDTO();                        string diaryTBefore = outputArray[(i * 4) + 56];
                        string diaryT = diaryTBefore.Trim().Substring(0, 2) + ":" + diaryTBefore.Trim().Substring(2, 2) + ":" + diaryTBefore.Trim().Substring(4, 2);
                        string diaryDBefore = outputArray[(i * 4) + 55];
                        string diaryD = diaryDBefore.Trim().Substring(6, 4) + "-" + diaryDBefore.Trim().Substring(3, 2) + "-" + diaryDBefore.Trim().Substring(0, 2);
                        string diaryDateTime = diaryD + " " + diaryT;
                        InstinctRes.responseBody.DiaryRecord[i].diaryTime = Convert.ToDateTime(diaryDateTime);
                        InstinctRes.responseBody.DiaryRecord[i].diaryUserId = outputArray[(i * 4) + 57];
                        InstinctRes.responseBody.DiaryRecord[i].diaryNote = outputArray[(i * 4) + 58];
这个数组里的元素别的string有返回值的,而返回报文里没有这个diaryTime,有什么办法吗?谢谢各位

解决方案 »

  1.   

    如果设置一个字段为xs:dateTime, 应该需要一个xs:dateTime的serializer 和 deserializer,如果没有对应的..lizer,建议将这个字段直接采用xs:string,前后端统一采用ISO格式(0000-00-00T00:00:00Z)就好了。
    ~而且看你的代码,也是作为字符串处理的,建议不要用自动类型解析和编码了。
      

  2.   

    标准的DateTime格式为:2018/3/16 0:55:29,我现在用string拼成yyyy-MM-dd hh:mm:ss的格式,直接转换成DateTime,传不到数组里,有什么办法吗?你可以把<xs:element name="diaryTime" type="xs:dateTime" minOccurs="0">类项改为string啊,或者自己写个转化的函数