बिना समय बदले UTC टाइम को C # डेटटाइम


124

वास्तविक समय को बदले बिना मैं UTC समय के लिए एक पूर्ववर्ती डेटाटाइम कैसे परिवर्तित करूंगा।

उदाहरण:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm

आप पीएसटी में हैं ? आपको PSTमूल्य कैसे मिलता है ?
किकेनेट

जवाबों:


207
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

से

DateTime dt = DateTime.Now;            
Console.WriteLine("{0} {1}", dt, dt.Kind);
DateTime ut = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
Console.WriteLine("{0} {1}", ut, ut.Kind);

50

DateTime.SpecifyKindस्टैटिक विधि का उपयोग करें ।

एक नया DateTime ऑब्जेक्ट बनाता है जिसमें निर्दिष्ट DateTime के समान ही टिक्स होते हैं, लेकिन निर्दिष्ट DateTimeKind मान द्वारा इंगित के रूप में या तो स्थानीय समय, समन्वित यूनिवर्सल टाइम (UTC), या दोनों के रूप में निर्दिष्ट किया जाता है।

उदाहरण:

DateTime dateTime = DateTime.Now;
DateTime other = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);

Console.WriteLine(dateTime + " " + dateTime.Kind); // 6/1/2011 4:14:54 PM Local
Console.WriteLine(other + " " + other.Kind);       // 6/1/2011 4:14:54 PM Utc

18

आप अतिभारित निर्माणकर्ता का उपयोग कर सकते हैं DateTime:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, DateTimeKind.Utc);

0

आप इसे इस तरह से भी कर सकते हैं:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime();

यह उम्मीद के मुताबिक काम नहीं कर सकता है। कोशिश करें ... new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString() बनाम DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString() आप देखेंगे कि आपको अलग परिणाम मिलेंगे।
होमर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.