मैंने कहा है कि आप, समय अवधि की गणना के लिए यूटीसी उपयोग करें ताकि आप डेलाइट बचत समय की समस्याओं से बचने और उसके बाद ही प्रदर्शन के लिए LOCALTIME उपयोग करना चाहिए।
डेटटाइम। यूटीसी के लिए लोकल टाइम जो स्थानीय समय क्षेत्र है और फिर डेटटाइम। स्थानीय समय से यूटीसी में कनवर्ट करने के लिए दिनांक समय।
के बाद टिप्पणी 1
संपादित मैं यह तो है कि आप सर्वर की है कि एक अलग समय क्षेत्र दिखाने के बाद कर रहे हैं ले रहे हैं?
यदि आप अपने सर्वर तक पहुंचने के लिए वेब पेज का उपयोग कर रहे हैं तो HttpRequest.UserLanguages का उपयोग करें CultureInfo ऑब्जेक्ट बनाने में मदद करने के लिए और अपनी डेटटाइम ऑब्जेक्ट को पार्स करने के लिए इसका उपयोग करें। पूरी जानकारी के लिए यहाँ देखो: Microsoft link on displaying local user time for web pages.
आप क्लाइंट-सर्वर वास्तुकला का उपयोग कर रहे हैं तो अगर LOCALTIME कॉल ग्राहक तरफ है यह ग्राहक के लिए LOCALTIME प्रदर्शित करेगा। इसके बाद आप इसे अपने सर्वर पर वापस भेजने के लिए यूटीसी में परिवर्तित कर देते हैं।
किसी भी तरह से आपके सर्वर को यह जानने की आवश्यकता नहीं है कि क्लाइंट ऐसा कहां है यदि आपके पास एकाधिक टाइमज़ोन में एकाधिक क्लाइंट हैं तो सभी गणनाएं मिलेंगी। यह आपको विभिन्न संस्कृति वस्तुओं के उपयोग से इच्छित किसी भी समय क्षेत्र में समय दिखाने की अनुमति देगा।
संपादित 2 मेरी दूसरी टिप्पणी
की नकल की आप सर्वर से UTC स्वरूप में समय डेटा प्राप्त कर सकते हैं। फिर आप डेटटाइम का उपयोग कर इसे परिवर्तित कर सकते हैं।ToLocalTime या DateTime.ToUniversalTime requried के रूप में। यदि आप तिथियों को भी शामिल कर रहे हैं और यूएस एमएम/डीडी/वाईय और यूरोपीय डीडी/एमएम/वाईई प्रारूपों के साथ सामना करने की आवश्यकता है, तो आप डेटइम मूल्य का विश्लेषण करने के लिए संस्कृतिइन्फो क्लास का उपयोग कर सकते हैं। यह आपके पास इस समय की तुलना में अधिक काम की तरह लगता है, लेकिन इसका मतलब यह होगा कि यदि आप अपने सर्वर को फिर से ले जाते हैं तो आपको डेटटाइम हैंडलिंग को फिर से लोड करने की आवश्यकता नहीं है।
एक नया बिंदु
एक और मुद्दा को देखने के लिए सर्वर और ग्राहकों एनटीपी (नेटवर्क टाइम प्रोटोकॉल) या SNTP (सरल नेटवर्क टाइम प्रोटोकॉल) का उपयोग करते हुए अगर यह काफी सटीक है के बीच घड़ी तुल्यकालन है। मुझे नहीं पता कि आप किस ओएस का उपयोग कर रहे हैं लेकिन इसका उपयोग नेटवर्क सर्वर सिंक्रनाइज़ करने के लिए विंडोज सर्वर टाइम सेवाओं द्वारा किया जाता है।
हाय जॉन, आपके उत्तर के लिए धन्यवाद। इन 2 में से सर्वश्रेष्ठ समाधान के रूप में आप क्या सुझाव देंगे? क्या मैं एक कस्टम टाइमज़ोन बनाउंगा या TimeZoneInfo.FindSystemTimeZoneById ("पूर्वी मानक समय") का उपयोग करूंगा; यह मानते हुए कि यह डेलाइट सेविंग का ख्याल रखेगा। और मैं इस समस्या का ध्यान कैसे संग्रहीत प्रक्रियाओं में कर सकता हूं जो getdate() विधि का उपयोग कर रहे हैं और आईएसटी समय ले रहे हैं? – Shetty
मुझे ईमानदार होने के लिए संग्रहीत प्रक्रियाओं के बारे में पता नहीं है - यदि संभव हो, तो यूटीसी को पास करें और उन्हें यूटीसी समझें। इस बात के लिए कि क्या आपको पूर्वी मानक समय के कस्टम समय क्षेत्र का उपयोग करना चाहिए, यह इस बात पर निर्भर करता है कि आप समय क्षेत्र चाहते हैं जो * हमेशा * यूटीसी के पीछे 4 घंटे है, या जो पूर्वी मानक समय से मेल खाता है। आपने मूल रूप से कहा था कि आपको "सभी समय उद्देश्यों के लिए" ईडीटी का उपयोग करने की आवश्यकता है - मेरा सुझाव है कि आप यह जांच लें कि आपको वास्तव में * ईडीटी की आवश्यकता है या आप पूर्वी मानक समय की आवश्यकता है या नहीं। –
ओके जॉन। मुझे * बोस्टन * शहर का समय सभी समय के प्रयोजनों के लिए मानक समय के रूप में उपयोग करने के लिए कहा गया था, जो ईडीटी के अंतर्गत आता है। मुझे दिन की रोशनी की बचत के बारे में ज्यादा जानकारी नहीं थी। मैं चाहता था कि मेरा आवेदन इस बार ले जाए, हालांकि यह आईएसटी सर्वर में चल रहा है। पहले यह एक अलग सर्वर में था जो ईडीटी समय क्षेत्र में चल रहा था और मेरे पास ऐसा कोई समस्या नहीं थी। – Shetty