2011-07-29 10 views
7

क्लाइंट हमारे ऐप के साथ हमारे सर्वर से एक फ़ाइल डाउनलोड करने के बाद, ऐप ParseExact को एक दिनांक स्ट्रिंग पर करता है जो फ़ॉर्म में सर्वर से नीचे आता है: yyyy/mm/dd HH:mm:ssडेटटाइम। थाई/बौद्ध युग के साथ सटीक समस्या

भ्रम के बाद, मैंने कुछ लॉग में देखा कि क्लाइंट सिस्टम की तारीख 19/7/2554 थी। जैसा कि यह पता चला है कि यह थाईलैंड में एक वैध समय है, विंडोज बौद्ध युग समय प्रणाली में चूक जाता है, जहां यह वर्ष 2554 है।

मेरा पार्स सटीक एक परिवर्तनीय संस्कृति के साथ किया जाता है, जो मुझे संदेह है कि समस्या हो सकती है , लेकिन मैंने सोचा कि संस्कृति उस प्रारूप को संदर्भित करती है जिसे आप पार्स करने की कोशिश कर रहे थे?

अपवाद संदेश मैं मिलता है: क्योंकि सप्ताह के दिन गलत

+0

आपका प्रारूप सप्ताह के दिन को शामिल नहीं करता है। क्या आप उस स्ट्रिंग का उदाहरण दे सकते हैं जिसे आप पार्स करने की कोशिश कर रहे हैं और कोड जो पार्सिंग कर रहा है? –

+0

वास्तव में आप प्रारूपों की एक सूची निर्दिष्ट कर रहे हैं? – V4Vendetta

+0

आह मेरे बुरे लोग, मैं खराब हो गया। बाहर निकलता है कोड का एक और टुकड़ा चल रहा था जिसे मैं नहीं जानता था। लॉग फ़ाइल से केवल एक अपवाद संदेश के साथ डीबग करना बहुत मुश्किल था। यह एक दिनांक समय था। पर्स त्रुटि, एक पारदर्शी नहीं है। मैं अपने पीसी के क्षेत्र को थाईलैंड में बदलकर समस्या को दोहराने में सक्षम था और देख रहा था कि यह कहां मर रहा था। –

उत्तर

1

था CultureInfo भी कैलेंडर में जानकारी शामिल है स्ट्रिंग एक वैध DateTime के रूप में पहचाना गया था। यदि TryParseExact विधि के पास सही कैलेंडर जानकारी तक पहुंच है तो यह तिथि को सही तरीके से पार्स करने में सक्षम होगा।

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.calendar.aspx

आप थाई CultureInfo साथ InvariantCulture CultureInfo तो है कि संस्कृति के लिए डिफ़ॉल्ट कैलेंडर इस्तेमाल किया जाएगा की जगह है।

वैकल्पिक रूप से, आप TryParse विधि के अधिभार का उपयोग कर सकते हैं जिसके लिए CultureInfo की आवश्यकता नहीं है। इस मामले में उपयोग की जाने वाली संस्कृति विंडोज में उपयोगकर्ता की क्षेत्रीय सेटिंग्स पर निर्भर होगी।