DateTime को इसकी समय-सीमा ऑफसेट की जानकारी नहीं है। ऑफसेट या टाइमज़ोन नाम (जैसे EAT, CEST, EST आदि) को वापस करने के लिए कोई अंतर्निहित पद्धति नहीं है।
दूसरों द्वारा सुझाए गए अनुसार, आप अपनी तिथि को यूटीसी में बदल सकते हैं:
DateTime localtime = new DateTime.Now;
var utctime = localtime.ToUniversalTime();
और उसके बाद ही अंतर की गणना करें:
TimeSpan difference = localtime - utctime;
इसके अलावा आप DateTimeOffset का उपयोग करके एक समय को दूसरे में बदल सकते हैं:
DateTimeOffset targetTime = DateTimeOffset.Now.ToOffset(new TimeSpan(5, 30, 0));
लेकिन यह हानिपूर्ण संपीड़न की तरह है - केवल ऑफसेट आपको यह नहीं बता सकता है कि यह किस समय क्षेत्र के दो अलग-अलग देशों के अलग-अलग समय क्षेत्रों में हो सकता है और केवल वर्ष के भाग के लिए एक ही समय है (उदाहरण के लिए दक्षिण अफ्रीका और यूरोप)। इसके अलावा, ध्यान रखें कि गर्मियों के दिन के समय की बचत को विभिन्न तिथियों (ईएसटी बनाम सीईटी - 3 सप्ताह के अंतर) पर पेश किया जा सकता है।
आप TimeZoneInfo वर्ग का उपयोग करके अपने स्थानीय सिस्टम समय क्षेत्र का नाम प्राप्त कर सकते हैं:
TimeZoneInfo localZone = TimeZoneInfo.Local;
localZone.IsDaylightSavingTime(localtime) ? localZone.DaylightName : localZone.StandardName
मैं गैरी शेंक से सहमत हूं, कृपया उस लेख को पढ़ें जो उन्होंने सुझाया था।