2010-04-21 10 views
6

मैं निम्न विधि का उपयोग कर रहा एक स्ट्रिंगसी # डेटटाइम, क्या यह विधि क्षेत्रीय सेटिंग सुरक्षित है?

private const string DateFormatString = "dd.MM.yyyy HH:mm:ss"; 
string LastsuccessfuldownloadDateTime = DateTime.Now.AddDays(-91).ToString(DateFormatString); 

इस लिए सुनिश्चित करें कि स्ट्रिंग हमेशा इस प्रारूप में श्रृंखलाबद्ध हो जाता है सबसे सुरक्षित तरीका है के रूप में एक तारीख को क्रमानुसार करने?

एक सर्वर पर अपडेट करें, मैंने इसे पूरी तरह से फ़ील्ड को गलत तरीके से प्राप्त कर लिया है।

उत्तर

9

मैं किसी अप्रत्याशित गॉथ से बचने के लिए क्रमबद्धता के लिए स्पष्ट आविष्कार का उपयोग करूंगा। आप यह भी सोचना चाहेंगे कि आपको यूटीसी की आवश्यकता है या नहीं; उदाहरण के लिए:

string LastsuccessfuldownloadDateTime = DateTime.UtcNow.AddDays(-91).ToString(
    DateFormatString, CultureInfo.InvariantCulture); 
+0

सहमत हुए। भले ही वह विशेष प्रारूप * सुरक्षित होना चाहिए, स्पष्ट रूप से 'InvariantCulture' का उपयोग करना हमेशा एक अच्छा विचार है। – Thorarin

+2

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

+0

@Marc, धन्यवाद अब नया परीक्षण चल रहा है ... –

0

मुझे लगता है कि आप अपने क्षेत्रीय setting.Then विभिन्न क्षेत्रीय सेटिंग कंप्यूटर पर हर चीज ठीक काम करेगा के अनुसार अपने कार्यक्रम की संस्कृति बदलना चाहिए।

उदाहरण के लिए यदि आपकी क्षेत्रीय सेटिंग यू.एस. के अनुसार है और आप यूके सेटिंग के साथ मशीन पर अपना प्रोग्राम चलाने के लिए चाहते हैं।

फिर

Thread.CurrentThread.CurrentCulture = नए CultureInfo ("en-US") अमेरिका के लिए अपने कार्यक्रम के CurrentCulture बदल;

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