2011-05-08 17 views
18

के माध्यम से एक सी # डेटटाइम पास करना मेरे पास सी # डेटटाइम ऑब्जेक्ट है। इस ऑब्जेक्ट में दिनांक और समय दोनों शामिल हैं। मुझे इस जानकारी को एक आरईएसटी-आधारित सेवा में पास करने की आवश्यकता है। मेरा सवाल यह है कि, मैं डेटटाइम को कैसे प्रारूपित करूं, जैसे कि मैं इसे क्वेरी स्ट्रिंग के माध्यम से पास कर सकता हूं, और इसे सर्वर-साइड पर डेटटाइम में वापस पार्स कर सकता हूं?क्वेरी स्ट्रिंग

DateTime startDate = GetStartDate(); 
string url = "http://www.mydomain.com/myservice.svc/[startDateGoesHere] 

WebRequest request = HttpWebRequest.Create(url); 
request.BeginGetResponse(new AsyncCallback(Service_Completed), request); 

धन्यवाद,

उत्तर

26

बस ToString (का उपयोग करें) और एक प्रारूप जैसे पारित: startDate.ToString ("yyyyMMddHHmmss")

और इसे वापस पार्स DateTime.ParseExact()

+0

डेटटाइम। पारसेएक्सक्ट 'बिल्कुल' था जो मुझे चाहिए था। मजाक नहीं। धन्यवाद! – joelc

+0

startDate.Ticks और नई डेटटाइम (टिक) का उपयोग करने पर विचार करें –

5

मैं का उपयोग करके प्रारूप के रूप में yyyyMMdd का उपयोग करें; यूआरएल एन्कोडेड होने की आवश्यकता नहीं है और इसे पढ़ने/समझना आसान है।

सर्वर की तरफ, आपको दिनांक प्राप्त करने के लिए DateTime.ParseExact(dateString, "yyyyMMdd") पर कॉल करना होगा।

उम्मीद है कि इससे मदद मिलती है।

19

सटीकता और स्थिरता के लिए आप इस्तेमाल कर सकते हैं:

string utcDateOut = DateTime.UtcNow.ToString("s", CultureInfo.InvariantCulture); 

DateTime utcDateIn = DateTime.ParseExact(utcDateOut, "s", 
           CultureInfo.InvariantCulture, 
           DateTimeStyles.AdjustToUniversal); 

यह आपको एक आईएसओ 8601 अनुरूप प्रारूप और यूटीसी के उपयोग दे वहाँ समय क्षेत्र आदि

साथ कोई समस्या नहीं है कि यह सुनिश्चित करेंगे होगा केवल दोष यह है कि यह एक "yyyyMMdd" के रूप में "अच्छा" के रूप में नहीं दिखता है।

संबंधित मुद्दे