Accordingtomultiplepostings, माइक्रोसॉफ्ट ने वेब सर्वर के टाइमज़ोन को नियंत्रित करने के लिए एक अनुप्रयोग सेटिंग - WEBSITE_TIME_ZONE
का उपयोग करने की क्षमता सक्षम की।Azure वेब ऐप्स पर टाइमज़ोन बदलना DateTimeOffset.Now के लिए काम नहीं करता है?
इसे आजमाने के लिए, मैंने यह मान "पूर्वी मानक समय" पर सेट किया जो मेरा स्थानीय समय क्षेत्र है।
एक ASP.NET MVC उस्तरा पृष्ठ पर, मैं निम्नलिखित कोड कहा:
:DateTime.Now: @DateTime.Now
DateTimeOffset.Now: @DateTimeOffset.Now
DateTime.UtcNow: @DateTimeOffset.UtcNow
जब मैं 17:10:07 पूर्वी मानक समय पर इस कल रात भाग गया, यह निम्न उत्पादन दे दी है
DateTime.Now: 6/18/2015 5:10:07 PM
DateTimeOffset.Now: 6/18/2015 5:10:07 PM +00:00
DateTime.UtcNow: 6/18/2015 9:10:07 PM
जैसा कि आप देख सकते हैं, सेटिंग ने DateTime.Now
को 0Tको अपने टाइमज़ोन में सही मूल्य वापस करने के लिए अजीब वेबसाइट्स/वेब ऐप्स की तरह सामान्य रूप से करने की अनुमति दी है। DateTime.UtcNow
ने हमेशा स्पष्ट कारणों से सही मूल्य वापस कर दिया है।
हालांकि, DateTimeOffset.Now
स्थानीय समय देता है, लेकिन +00:00
के ऑफसेट के साथ - लगभग टाइमज़ोन की बजाय घड़ी बदल दी गई थी। यह तब होता है, भले ही documentation का कहना है (जोर मेरा):
एक DateTimeOffset उद्देश्य यह है कि वर्तमान कंप्यूटर पर वर्तमान दिनांक और समय पर सेट किया जाता हो जाता है, स्थानीय समय के लिए सेट ऑफसेट के साथ से समन्वित सार्वभौमिक समय ऑफसेट (यूटीसी)।
तो क्या हो रहा है कि WEBSITE_TIME_ZONE
सेटिंग प्रभावों DateTime.Now
लेकिन यह DateTimeOffset.Now
प्रभावित नहीं करता है? और क्या मैं इस तरह से किसी भी तरह से मिल सकता है?
स्पष्टीकरण के बिंदु के रूप में, मैं वास्तव में सर्वर पर समय क्षेत्र को बदलना नहीं चाहता हूं। हम उचित समय क्षेत्र स्वतंत्र समाधान पर काम कर रहे हैं। लेकिन मैं अभी भी उत्सुक हूं कि ऐसा क्यों होता है।
क्या आपको वास्तव में सर्वर के समय क्षेत्र को बदलने की ज़रूरत है? मैं उस आवश्यकता से बचने के लिए जितना संभव हो उतना कठिन प्रयास करूंगा। मैं सहमत हूं कि यह डेटटाइम ऑफसेट का अजीब व्यवहार है.अब, आपको दिमाग ... –
मैं ओपी में समझाते हुए बहस कर रहा था। मैं सर्वर के समय क्षेत्र को नहीं बदलना पसंद करूंगा। विकल्पों की खोज करते समय, मैं इस पर दौड़ गया और यह समझ में नहीं आया कि यह कैसे काम करता है (या यह जिस तरह से मैंने सोचा नहीं है)। तो मैंने सोचा कि मैं स्पष्टीकरण प्राप्त करने की कोशिश करूंगा। – Tim
समझ में आता है - और मैं उन चीजों के साथ प्रयोग करने के लिए हूं जो आप वास्तव में नहीं करना चाहते हैं :) –