2010-05-05 8 views
5

मैं एक डब्लूएसडीएल का उपयोग कर रहा हूं जो किसी एक विधि के लिए डेटटाइम पैरामीटर की अपेक्षा करता है।मैं .net SOAP अनुरोध के दिनांक प्रारूप को कैसे बदलूं?

2010-1-1T10:: जब नेट मेरे कॉल को धारावाहिक, वह इस तरह का दिनांक पैरामीटर बनाता है 00: 00.00

यह लग रहा है serializer की तरह "एस" की दिनांक स्वरूप का उपयोग कर रहा है।

2010-1-1T10:: 00: 00.00 -4: 00

मैं दिनांक स्वरूप मैं serializer उपयोग करना चाहते हैं कैसे निर्दिष्ट करूँ मैं एक अलग स्वरूप, अर्थात् समय क्षेत्र के साथ एक ऑफसेट की ज़रूरत है? (सी # या वीबी.नेट)

+1

यही नहीं कैसे SoapFormatter serializes दिनांक समय है, यह इस तरह दिखता है: "2010-05-05T16: 57: 27.5270036-05: 00"। सेकेंड अंश और 2 अंकों का महीना और दिन नोट करें। कोई विचार नहीं कि आप कैसे अपना प्राप्त करेंगे। –

+0

आप सही हैं। मैंने गलत तरीके से टाइप किया है। अग्रणी शून्य की आवश्यकता है, और -04: 00 से पहले की जगह हटा दी जानी चाहिए। –

+0

धन्यवाद हंस, यह मेरे लिए पूरी तरह से काम करता है, लेकिन इन अंतिम अंक ".5270036-05: 00" – mukamaivan

उत्तर

2

यदि टाइमज़ोन ऑफसेट आपके वर्तमान टाइमज़ोन के लिए है, तो आपको यह जांचना चाहिए कि आपकी डेटटाइम इंस्टेंस में Kind संपत्ति DateTimeKind.Local पर सेट है। यदि नहीं, तो आप इसे इस प्रकार के लिए मजबूर कर सकते हैं:

DateTime myDateTime; 
... 
myDateTime = myDateTime.SpecifyKind(myDateTime, DateTimeKind.Local); 
+0

के लिए क्या खड़े हैं - यह पूरी तरह से काम करता है। –

0

आम तौर पर इस यूटीसी (यूनिवर्सल समय समन्वित) स्वरूप में पारित करने के समय/दिनांक के द्वारा किया जा जाएगा ... अर्थ: विश्व-समय और समय क्षेत्र डाल (यदि आवश्यक) एक अलग पैरामीटर में।

देखें: http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime%28VS.71%29.aspx

+0

यह एक अच्छा विचार है, लेकिन मेरा सवाल यह है कि मैं अपने डिफ़ॉल्ट प्रारूप के बजाय कुछ प्रारूप का उपयोग करने के लिए एसओएपी कॉल के लिए धारावाहिक कैसे प्राप्त करूं? (किसी भी घटना में, जिस सेवा को मैं कॉल कर रहा हूं वह उस प्रारूप को स्वीकार नहीं करता है - मैंने सोपूआई का उपयोग करके इसे आजमाया) –