c# - सेटिंग प्लगइन डेटटाइम संपत्ति के साथ ठीक से काम नहीं कर रहा है




xamarin win-universal-app (2)

मैं सेटिंग प्लगइन का उपयोग कर रहा हूं और मैंने कुछ बूलियन स्टोर करने के लिए काम किया है। अब मैं डेटटाइम ऑब्जेक्ट को प्रबंधित करना चाहता था। मैंने सेटिंग्स.cs में निम्नलिखित जोड़ा:

private const string TimeRemainingKey = "time_remaining";
private static readonly DateTime TimeRemainingDefault = DateTime.Now;

public static DateTime TimeRemaining
{
    get
    {
        return AppSettings.GetValueOrDefault(TimeRemainingKey, TimeRemainingDefault);
    }
    set
    {
        AppSettings.AddOrUpdateValue(TimeRemainingKey, value);
    }
}

मूल रूप से मैंने अपने कोड में निम्नलिखित का उपयोग किया:

Settings.TimeRemaining = new DateTime().AddMinutes(30);

जब मैंने कुछ लॉगिंग जोड़ा तो मेरे पास यह था:

DateTime dt = new DateTime();
Debug.WriteLine(dt.ToString());
dt = dt.AddMinutes(30);
Debug.WriteLine(dt.ToString());
Settings.TimeRemaining = dt;
Debug.WriteLine(Settings.TimeRemaining.ToString());

यह प्रिंट करता है:

1/1/0001 12:00:00 पूर्वाह्न

1/1/0001 12:30:00 पूर्वाह्न

1/1/0001 12:00:00 पूर्वाह्न

यह व्यवहार क्यों होता है?


Answers

सेटिंग प्लगइन डेटटाइम को यूटीसी में परिवर्तित करता है, इसलिए यह आपके टाइमज़ोन में दिखता है जब यह 1/1/0001 12:30:00 पूर्वाह्न को यूटीसी में परिवर्तित करता है तो यह 1/1/0001 12:00:00 पूर्वाह्न हो जाता है। नतीजतन जब मूल्य सेटिंग्स से वापस पढ़ा जाता है तो आपको 1/1/0001 12:00:00 पूर्वाह्न मिलता है।

यदि आप अपनी तिथि के लिए Kind सेट करते हैं तो प्लगइन को सही तरीके से काम करना चाहिए:

Settings.TimeRemaining = DateTime.SpecifyKind(new DateTime().AddMinutes(30), DateTimeKind.Utc);

अंतर - उपयोग (कब और क्यों)

एक फ़ील्ड एक चर है जिसे सीधे कक्षा या संरचना में घोषित किया जाता है। एक वर्ग या संरचना में उदाहरण फ़ील्ड या स्थिर फ़ील्ड या दोनों हो सकते हैं। आम तौर पर, आपको केवल उन चर के लिए फ़ील्ड्स का उपयोग करना चाहिए जिनके पास निजी या संरक्षित पहुंच है । क्लाइंट कोड के लिए आपकी कक्षा का खुलासा करने वाला डेटा विधियों, गुणों और अनुक्रमणकों के माध्यम से प्रदान किया जाना चाहिए । आंतरिक क्षेत्रों में अप्रत्यक्ष पहुंच के लिए इन संरचनाओं का उपयोग करके, आप अमान्य इनपुट मानों के खिलाफ सुरक्षा कर सकते हैं।

एक संपत्ति एक सदस्य है जो एक निजी क्षेत्र के मूल्य को पढ़ने, लिखने या गणना करने के लिए एक लचीली तंत्र प्रदान करता है। गुणों का उपयोग इस तरह किया जा सकता है जैसे वे सार्वजनिक डेटा सदस्य हैं, लेकिन वे वास्तव में एक्सेसर्स नामक विशेष विधियां हैं। यह डेटा को आसानी से एक्सेस करने में सक्षम बनाता है और अभी भी तरीकों की सुरक्षा और लचीलापन को बढ़ावा देने में मदद करता है। गुण कार्यान्वयन या सत्यापन कोड छुपाते समय मूल्य प्राप्त करने और सेट करने के सार्वजनिक तरीके का खुलासा करने के लिए कक्षा को सक्षम करते हैं। एक प्रॉपर्टी एक्सेसर का उपयोग संपत्ति मूल्य वापस करने के लिए किया जाता है, और एक सेट एक्सेसर का उपयोग एक नया मान असाइन करने के लिए किया जाता है।







c# xamarin win-universal-app