यहां अन्य उत्तर उपयोगी हैं, लेकिन वे विशेष रूप से प्रशांत तक पहुंचने के तरीके को कवर नहीं करते हैं - यहां आप जाते हैं:
public static DateTime GmtToPacific(DateTime dateTime)
{
return TimeZoneInfo.ConvertTimeFromUtc(dateTime,
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));
}
विचित्र रूप से पर्याप्त है, हालांकि "प्रशांत मानक समय" का सामान्य अर्थ "प्रशांत डेलाइट टाइम" से कुछ अलग है, इस मामले में यह सामान्य रूप से प्रशांत समय को संदर्भित करता है। वास्तव में, यदि आप FindSystemTimeZoneById
इसे लाने के लिए उपयोग करते हैं, तो उपलब्ध गुणों में से एक एक बूल है जो आपको बता रहा है कि यह समय-क्षेत्र वर्तमान में दिन की बचत में है या नहीं।
आप लाइब्रेरी में इसके सामान्यीकृत उदाहरण देख सकते हैं जिन्हें मैंने डेटजाइम से निपटने के लिए एक साथ फेंक दिया था जिनकी मुझे उपयोगकर्ता से पूछ रहा है, आदि के आधार पर अलग-अलग टाइमज़ोन में आवश्यकता है:
https://github.com/b9chris/TimeZoneInfoLib.Net
यह विंडोज के बाहर काम नहीं करेगा (उदाहरण के लिए लिनक्स पर मोनो) क्योंकि विंडोज रजिस्ट्री से समय की सूची आती है:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
नीचे आपको कुंजियाँ मिलेंगी (रजिस्ट्री संपादक में फ़ोल्डर आइकन); उन कुंजियों के नाम हैं जिन्हें आप पास करते हैं FindSystemTimeZoneById
। लिनक्स पर आपको टाइमज़ोन परिभाषाओं के एक अलग लिनक्स-मानक सेट का उपयोग करना होगा, जिसे मैंने पर्याप्त रूप से नहीं खोजा है।