TimeZoneInfo
करता है, हाँ। (यह .NET ढांचे का हिस्सा है, C# का हिस्सा नहीं है - C# केवल वह भाषा है जिसका आप उपयोग कर रहे हैं।) हालांकि, मुझे नहीं लगता कि आप वास्तव में यही करना चाहते हैं।
आप DateTime
को क्यों स्टोर कर रहे हैं? सर्वर . में वैसे भी समय क्षेत्र? ज्यादातर मामलों में इसे यूटीसी में स्टोर करना अधिक समझदारी होगी। किसी और चीज के अलावा, यदि आपका सर्वर ऐसे समय क्षेत्र में है जो दिन के उजाले की बचत समय देखता है, तो आप प्रति वर्ष एक घंटे के लिए अस्पष्टता के साथ समाप्त हो जाएंगे, जब घड़ी वापस आ जाएगी। (वही स्थानीय समय दो बार आता है।)
एक बार जब आप इसे यूटीसी के रूप में संग्रहीत कर लेते हैं, तो आपको इसे अपने जावास्क्रिप्ट क्लाइंट को यूटीसी के रूप में भी देना चाहिए। जबकि आप कहते हैं कि आपके पास "कुछ जावा स्क्रिप्ट है जो मुझे यूटीसी से उपयोगकर्ताओं को ऑफसेट कर देगी" - यह समय पर सटीक तत्काल पर निर्भर करेगा। उदाहरण के लिए, जैसा कि मैं यूके में हूं, मेरी ऑफसेट कभी-कभी 0 और कभी-कभी +1 घंटा होती है। यदि आप यूटीसी को वापस क्लाइंट को पास करते हैं, तो वह उस यूटीसी समय से स्थानीय समय निकाल सकता है। जब तक आप सटीक . प्राप्त नहीं कर लेते, आपका सर्वर ऐसा नहीं कर सकता क्लाइंट से सर्वर तक समय क्षेत्र का प्रतिनिधित्व, जो आमतौर पर एक मुश्किल काम है।
दोबारा, सी # स्वयं यहां प्रासंगिक नहीं है। यह स्पष्ट नहीं है कि आप .NET ढांचे के किस भाग से मतलब रखते हैं - TimeZone
? TimeZoneInfo
? DateTime
? TimeZoneInfo
ऐतिहासिक डेटा है, लेकिन केवल अगर आप एक ऑपरेटिंग सिस्टम संस्करण पर हैं जो इसका समर्थन करता है।
ठीक है, जहाँ तक आपको परवाह करने की संभावना है। इसमें TZDB जितना ऐतिहासिक डेटा नहीं है, और इसमें रूस और नामीबिया के लिए कुछ बहुत ही अजीब प्रतिनिधित्व हैं, लेकिन इसमें आम तौर पर नियमों को बदलने का विचार होता है।