C # दिनांक समय प्रारूप के अंदर एक एकल उद्धरण का क्या अर्थ है?


55

हमारे पास C # में यह स्थिरांक है:

System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern

इसका यह मूल्य है:

"yyyy'-'MM'-'dd'T'HH':'mm':'ss"

मैं इसे ParseExactफंक्शन में इस्तेमाल करता हूं और फिर yyyy-MM-ddTHH:mm:ssकाम करता हूं ।

मैं यह पता नहीं लगा सकता कि एकल उद्धरण किस लिए हैं।

जवाबों:


76

यह एक शाब्दिक स्ट्रिंग सीमांकक है

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

वे बैकस्लैश का उपयोग करके भागने के बराबर हैं: dd'T'HHजैसा है वैसा ही है dd\THH

अपने स्ट्रिंग में yyyy'-'MM'-'dd'T'HH':'mm':'ss, उद्धरण के आसपास अनावश्यक हैं -और Tके रूप में उन कस्टम प्रारूप तार नहीं हैं, और इसलिए हमेशा स्ट्रिंग शाब्दिक रूप में समझा जाएगा। हालांकि : एक प्रारूप निर्दिष्टकर्ता है , जो वर्तमान संस्कृति के लिए उपयुक्त समय विभाजक का मूल्यांकन करता है। इसे इस रूप में उद्धृत करना ':'कि :वर्तमान संस्कृति की परवाह किए बिना हमेशा शाब्दिक चरित्र का उपयोग किया जाएगा।


2

यह जानना उपयोगी है कि यह विंडोज गेटडेटफार्मेट फ़ंक्शन द्वारा उपयोग किया जाने वाला समान प्रारूप है । आप एपोस्ट्रोफ का उपयोग कुछ शाब्दिक संकेत करने के लिए करते हैं जिसे आप परिणामी स्ट्रिंग में सम्मिलित करना चाहते हैं।

स्ट्रिंग स्वरूपण कोड के और अधिक प्रलेखन पर पाया जा सकता है:

आपकी स्ट्रिंग में यह संकेत है कि यह शाब्दिक रूप से हाइफ़न, कॉलन और टी अक्षर जोड़ना चाहता है :

yyyy '-'MM '-'dd 'T'HH ':'mm ':'ss

सामान्य तौर पर आप वास्तव में एक हाइफ़न ( -) या कॉलन ( :), या स्लैश ( /) के साथ दिनांक / समय का निर्माण नहीं करना चाहते हैं । क्योंकि वे संस्कृतियों के लिए गलत हैं जो स्लैश और कॉलनों का उपयोग तारीखों / समयों के निर्माण के लिए नहीं करते हैं:

  • 10/22/2019 10∶19∶54 ∶
        1. 10:19:54
  • 2019.10.22 10:19:54
  • 2019-10-22 10.19.54
  • 2019-10-22 10:19:54
  • 2019-10-22 10:19:54 AM
  • 2019-10-22 9 10:19:54 ཆུ་ཚོད་ ཆུ་ཚོད་
  • 2019-10-22 9 10:19:54
      1. 2019 10:19:54
        1. 10:19:54
  • 22.10.19 10:19:54
  • 22.10.19 ý। 10:19:54
  • 22.10.2019 10.19.54
  • 22.10.2019 10:19:54
  • 22.10.2019 10:19:54 पीडी
  • 22.10.2019 ऑनलाइन 10:19:54
  • 2019/10/22। 10:19:54
  • 22-10-19 10.19.54
  • 22-10-19 10.19.54 पूर्वाह्न
  • 22-10-19 10:19:54
  • 22-10-19 सेवार 10:19:54
  • 22-10-2019 10:19:54
  • 22-10-2019 ৰাতিপু 10:19:54
  • 22-окт। 19 10:19:54
  • 23/02/41 10:19:54 19
  • 30/07/1398 10:19:54 ق./

आप क्या करना चाहते हैं, यदि आप संकेत करना चाहते हैं:

  • "यहाँ वह जगह है जहाँ आपको डेट सेपरेटर रखना चाहिए"
  • "यहाँ है जहाँ आप समय विभाजक रखना चाहिए"

विशेष का उपयोग करें:

  • दिनांक विभाजक प्रतिस्थापन चरित्र (/)
  • समय विभाजक प्रतिस्थापन चरित्र (:)

और एक प्रारूप का निर्माण करें जैसे:

dd / yyyy / MM ss: HH: मिमी

मुझे नहीं पता कि किसी व्यवसाय को किस तिथि की आवश्यकता हो सकती है:

  • 22/2019/10 37:10:24
  • 22-2019-10 37-20110∶24
  • 22 // 2019 // 10 37 :: 10 :: 24
      1. 10 37 1010∶24

लेकिन इस तरह से स्थानीयकरण संस्कृति की सही तिथि और समय विभाजक सम्मिलित करेगा।

जबकि आप अगर सचमुच के लिए कहा /, -, या ::

  • dd '/'yyyy '/'MM ss ':'HH ':'मिमी

आप सचमुच मिलेगा:

  • 22/2019/10 37:10:24

बजाय:

  • 22-2019-10 37-20110∶24

मुझे नहीं लगता कि .NET की तिथि और समय प्रारूप स्ट्रिंग के समान हैं GetDateFormat। शायद इसी तरह, लेकिन उदाहरण के लिए का अर्थ yyyyyअलग है। यह देखते हुए कि इस प्रश्न पर एक उल्लेखनीय ध्यान दिया जा रहा है, और यह C # के बारे में है, मैं इस कथन को सही करने और इसके बजाय .NET डॉक्स से लिंक करने का सुझाव देता हूं।
छावनी 7
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.