मेरे पास एक दिनांक समय है जो हमारे बैकएंड सिस्टम जैसे 2019-11-27T00:00:00
में संग्रहीत है। अब मैं उस डेटा का उपयोग करना चाहता हूं, जो समय क्षेत्र की परवाह किए बिना दिनांक और समय का प्रतिनिधित्व करता है, बाहरी उपयोगकर्ताओं को भेजे गए JSON दस्तावेज़ के एक भाग के रूप में।
मैं वर्तमान में उपरोक्त मानों का प्रतिनिधित्व करने के लिए Noda Time प्रकार Instant
का उपयोग कर रहा हूं।
InstantPattern.CreateWithInvariantCulture("yyyy-MM-ddTHH:mm:ss").Parse("2019-11-27T00:00:00").Value;
जब मैं बाद में JSON दस्तावेज़ में समय आउटपुट करना चाहता हूं तो मैं इसे एक प्रकार में परिवर्तित करना चाहता हूं जो वर्तमान ऑब्जेक्ट के लिए समय क्षेत्र का भी प्रतिनिधित्व कर सकता है। समय क्षेत्र ज्ञात हैं।
उदाहरण के तौर पर, उपरोक्त मान को दस्तावेज़ में इस तरह दर्शाया जाना चाहिए:
स्वीडन: 2019-11-27T00:00:00+01:00
फिनलैंड: 2019-11-27T00:00:00+02:00
कारण मैं ऐसा करना चाहता हूं कि डेटाबेस में दिनांक और समय उस समय का प्रतिनिधित्व करता है जब वर्तमान डेटा उपभोक्ता के लिए स्थानीय समय में कोई घटना होती है। एक उदाहरण "ब्लैक फ्राइडे" बिक्री होगी जो उस वास्तविक देश की मध्यरात्रि से शुरू होती है जहां बिक्री होती है, न कि जब यूटीसी में मध्यरात्रि होती है या इसी तरह। आउटपुट JSON में समय क्षेत्र की जानकारी सेट करके मैं गारंटी दे सकता हूं कि डेटा के उपभोक्ताओं को सही जानकारी मिलती है।
झटपट से ZonedDateTime का उपयोग करने के मेरे सभी प्रयास, इंस्टेंट को UTC समय के रूप में माना जाता है और आउटपुट गलत हो जाता है। शायद कुछ ऐसा है जो मुझे याद आ रहा है, लेकिन दुर्भाग्य से मैं फंस गया हूँ।
मेरे प्रश्न हैं:
- क्या नोडाटाइम इसके लिए सही पुस्तकालय है?
- डेटाबेस मानों के लिए तत्काल सही डेटा प्रकार है?
- क्या ZonedDateTime काम करने का सही तरीका है?
- मैं किसी झटपट को किसी अन्य प्रकार में कैसे परिवर्तित कर सकता हूं जिसमें TimeZone जानकारी हो सकती है?
अग्रिम में धन्यवाद।
1 उत्तर
कुछ महान लोगों की उपरोक्त टिप्पणियों से, मैंने अपनी समस्या को हल कर लिया है
- अन्य डेवलपर्स को स्थानीय दिनांक और समय के लिए इसे गलती से रखने के लिए डेटाबेस से प्रकार के रूप में इंस्टेंट का उपयोग करना
- झटपट को डेटटाइम में कनवर्ट करना और फिर
TimeZoneInfo.ConvertTimeBySystemTimeZoneId
को सही समय पर लागू करना ताकि JSON आउटपुट तैयार किया जा सके।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।
+01:00
"टाइमज़ोन" नहीं है। यह एक ऑफसेट है। अधिकांश समय, यह समतुल्य होगा, लेकिन यह वही नहीं है, हालांकि। लेकिन विषय पर: यदि आप डीबी में ज़ोनड टाइमस्टैम्प चाहते हैं, तो आप इसके साथ ज़ोन (या ऑफ़सेट) को स्टोर क्यों नहीं करते?DateTimeOffset
ऑब्जेक्ट के साथ अच्छा काम करता है। यदि टाइमज़ोन इसके बजाय केवल ऑफ़सेट हैं, तो आप इसे जोड़ने के लिए डेटटाइम ऑफसेट विधियों का उपयोग कर सकते हैं।