2017-07-17 28 views
0

我正在研究asp.net c#項目,其中我將用戶輸入作爲DD/MM/YYYY。將日期轉換爲xml web服務日期asp.net

因此,我想通過由用戶對網絡服務的輸入日期一個期望日期格式/>

:格式<類型=「DateBean IMPL」(2017-07-15T08:55.800Z:01)

現在我具有輸入轉換爲問題YYYY-DD-MMT

您的幫助和參考任何有用的主題appreacited

什麼都值我想我得到錯誤「可以」 t隱式轉換類型「[string],[system.datetime]或其他。鍵入「mywebservice.DateBean

這是我如何構建調用Web服務:

MyWebService.top_ELEMENT_NAME srvBeanIn = new MyWebService.top_ELEMENT_NAME(); 
srvBeanIn.input = new MyWebService.webServiceElementTop(); 
srvBeanIn.input.paymentOrder = new MyWebService.ELEMENT_NAME[1]; 
srvBeanIn.input.paymentOrder[0] = new MyWebService.ELEMENT_NAME(); 

這是如何我試圖通過之日起

var input = "17/07/2017"; 
CultureInfo provider = CultureInfo.InvariantCulture; 
const string inputFormat = "dd/MM/yyyy"; 
DateTime parsed; 


try 
{ 
    parsed = DateTime.ParseExact(input, inputFormat, provider); 
    Debug.WriteLine("parsed nj wire= " + parsed); 
    var isoResult = parsed.ToUniversalTime().ToString("o"); //--> 2017-07-15T08:01:55.800Z 
    srvBeanIn.input.paymentOrder[0].MyDate.date = parsed; 

} 
catch (FormatException) 
{ 
    Debug.WriteLine("{0} is not in the correct format.", input); 
} 

而這裏的我在WSDL中使用的xml標記

<xsd:complexType name="DateBean"> 
     <xsd:complexContent mixed="false"> 
      <xsd:extension base="impl:BaseSOIBean"> 
      <xsd:sequence> 
       <xsd:element name="date" nillable="true" type="xsd:dateTime" /> 
      </xsd:sequence> 
      </xsd:extension> 
     </xsd:complexContent> 
     </xsd:complexType> 


<xsd:element name="swiftDate" nillable="true" type="impl:DateBean" /> 
+0

是你在webservice上使用的DataContractSerializer嗎?您需要在此處提供代碼作爲更多信息。 – codeSetter

+0

我沒有源代碼,但我有Web服務的wsdl,這裏是元素:

+0

如何構造請求..該代碼事先是重要的。 – codeSetter

回答

0

首先將字符串輸入解析爲DateTime使用指定的輸入格式,然後將轉換爲UTC,然後轉換爲ISO字符串isoResult

var input = "17/07/2017"; 

CultureInfo provider = CultureInfo.InvariantCulture; 

const string inputFormat = "dd/MM/yyyy"; 
DateTime parsed; 

try { 
    parsed = DateTime.ParseExact(input, inputFormat, provider); 
    var isoResult = parsed.ToUniversalTime().ToString("o"); 
} 
catch (FormatException) { 
    Console.WriteLine("{0} is not in the correct format.", input); 
} 

使用ISO字符串創建DateBean。

+0

嗨,謝謝你的回覆。 我仍然得到相同的錯誤,因爲傳遞var或字符串是不可接受的tihs錯誤<不能隱式地將類型'字符串'轉換爲'MyWebService.DateBean' –

+0

我不熟悉'DateBean'類型。它是WebService的自定義類型嗎?嘗試使用轉換的字符串或DateTime實例化新的DateBean對象,然後將其添加到請求中。 –

+0

可以將parsed.ToUniversalTime()。ToString(「o」)轉換成日期嗎?因爲[var]或[string]不被接受。 –