क्या कोई सार्वभौमिक दिनांक प्रारूप है जिसे दुनिया में कोई भी समझ सकता है?


10

कनाडा में, हर कोई तिथि प्रारूप से परिचित है YYYY-MM-DD। यूरोप या दक्षिण अफ्रीका में, वे पसंद करते हैं DD-MM-YYYY। दक्षिण अफ्रीका के ऐसे उपयोगकर्ता हैं जो YYYY-MM-DDतारीख प्रारूप से भ्रमित हो जाते हैं । क्या इस स्थिति को संभालने का कोई तरीका है?

मैं सभी के लिए निम्नलिखित विधि प्रारूप का उपयोग करने के बारे में सोच रहा था: Feb 02, 2011


21
मुझे लगता है कि YYYY-MM-DD प्रारूप भी एक आईएसओ मानक है।
FrustratedWithFormsDesigner

2
"यूरोप या दक्षिण अफ्रीका में, वे पसंद करते हैं DD-MM-YYYY।" सिवाय इसके कि हंगरी में ( YYYY.MM.DD) या फ़िनलैंड ( DD.MM.YYYY), या ... क्षमा करें, वास्तविकता गन्दा है :-(
Péter Török

6
विभिन्न कैलेंडर के बारे में क्या?

4
रडार डेटा एकत्र करते समय (उत्तरी अमेरिका में), हमने इसका उपयोग फ़ाइल नामों के लिए किया है prefix_1999_12_23_16_45_53.ext:। मुख्य कारण: यह सॉर्ट करना आसान था, खोज और पार्स। खोज करते समय, आप वास्तव में सबसे महत्वपूर्ण इकाई के साथ शुरू करना चाहते हैं ताकि लक्ष्य ASAP तक पहुंच सके। इस प्रकार का स्ट्रिंग बाइनरी-ट्री फ्रेंडली भी है। यूरोप के छात्रों पर प्रयोगशाला का प्रभुत्व था, लेकिन मुझे लगता है कि यह केवल सामान्य ज्ञान था, अगर वैज्ञानिक मानक नहीं था। हालांकि, जिस देश में मैं बड़ा हुआ हूं, वहां हम डीडी-एमएम-वाईवाईवाई का उपयोग रोजमर्रा के उपयोग के लिए करेंगे। रीज़निंग: जब आप जागते हैं, तो पहला भाग क्या जानना चाहते हैं?
नौकरी

2
@Frustrated, मुझे लगता है अपनी बात चाँद महीने एक अलग मूल्य उस साल के साथ कैलेंडर (कैसे एक मुस्लिम व्याख्या जैसे 1268/12/30?), या देखते हैं कि है (वहाँ लगभग है जिनमें से। 13 प्रति वर्ष) आदि तो होना करने के लिए वास्तव में सार्वभौमिक सिर्फ सहमत हो जिस पर नंबर दिन है और जो महीने है ... से अधिक है
पीटर Török

जवाबों:


15

अस्पष्ट हिस्सा अगर वे संख्या का प्रतिनिधित्व करती रहे माह से अलग दिन के लिए है।

क्या 02/03 का मतलब 03 फरवरी या 02 मार्च है?

महीने के पहचानकर्ता को उसके नाम के साथ उसके नंबर से बदलकर आप उस अस्पष्टता को दूर करते हैं। आपके प्रश्न का उत्तर देने के लिए, आपका संस्करण Feb 02, 2011एक अच्छा समाधान प्रतीत होता है।

वर्ष संख्या के साथ अभी भी एक संभावित समस्या है यदि आप इसे केवल 2 अंकों के साथ लिख रहे हैं, लेकिन तब इसे ठीक करना आसान है (4 का उपयोग करें)।


10
और फिर आपके पास विभिन्न भाषाओं में महीने के नाम के लिए बस अनुवाद फाइल हो सकती है।
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner और सही (अच्छी तरह से ज्ञात) संक्षिप्त के लिए एक पेशेवर अनुवाद प्राप्त करने के लिए मत भूलना।
निकोल

उन भाषाओं के बारे में क्या है जो महीनों के नामकरण से परेशान नहीं हैं?
JUST MY correct OPINION

19

नहीं , कोई सार्वभौमिक मान्यता प्राप्त दिनांक प्रारूप नहीं है।

आईएसओ 8601 तिथि प्रारूपों के लिए एक अंतरराष्ट्रीय मानक को परिभाषित करता है। जैसे, यह शायद सबसे अच्छा समझौता है। लेकिन जैसा कि आप कहते हैं, उपयोगकर्ता हमेशा इस प्रारूप को पसंद नहीं करते हैं।

एकमात्र सही समाधान विभिन्न देशों के लिए एक अलग प्रारूप प्रस्तुत करना है। आप पा सकते हैं कि इसे प्राप्त करने के लिए एक मानक पुस्तकालय है यदि आपकी चुनी हुई प्रोग्रामिंग भाषा में महत्वपूर्ण निम्नलिखित है।


2
यह भी खूब रही। मैं आमतौर पर लॉगफ़ाइल्स आदि के लिए YYYYMMDD का उपयोग करता हूं, अब मैं कह सकता हूं कि मैं सिर्फ ISO-8601 का अनुपालन कर रहा हूं!
मार्क हैरिसन

1
आईएसओ 8601 का उपयोग करते समय, मैं आमतौर पर पूरी चीज़ की खोज को प्रारूपित करने के लिए सबसे अच्छा होता हूं अर्थात 1999-12-25T00: 00: 00.000Z । हाँ, यह औसत व्यक्ति को जिबरिश जैसा दिखता है लेकिन अस्पष्टता का कोई मौका नहीं है।
16

2
"एकमात्र सही समाधान विभिन्न देशों के लिए एक अलग प्रारूप प्रस्तुत करना है।" - और कैसे, वास्तव में, क्या मुझे एक पैकिंग स्लिप पर एक तारीख प्रिंट करनी चाहिए जो दुनिया में कहीं भी जहाज कर सकती है?
स्कॉट व्हिटलॉक

@ScottWhitlock: अफसोस की बात है कि इस समस्या का कोई सर्वमान्य हल नहीं है। यदि आप यह नहीं जानते हैं कि जब आप तारीख को प्रिंट करते हैं तो एक पैकेज कहाँ भेजा जा रहा है, तो आईएसओ 8601 आपकी सबसे अच्छी शर्त हो सकती है।
क्रामि

"एकमात्र सही समाधान विभिन्न देशों के लिए एक अलग प्रारूप प्रस्तुत करना है।" मैं कहूंगा कि यह सही नहीं है। यह बस आज ही होता है कि कुछ पुस्तकालय मेरे पसंदीदा तारीख प्रारूप के सहायक विचार, मेरे पसंदीदा पर-आधारित, -बुजुर्ग भ्रम के कारण। लेकिन पहले चरण के बाद से हम अभी सभी संस्कृतियों को ठीक नहीं कर सकते हैं, या तो महीनों या कुछ के लिए आईएसओ 8601 या पाठ का उपयोग करें।
एरिक I

9

आपको उसके लिए संस्कृति जानकारी का उपयोग करना चाहिए। या कम से कम स्थानीय प्रदर्शन प्रारूप।

जावास्क्रिप्ट में, आप दिनांक वर्ग के लिए टोलकालेस्ट्रिंग विधि का उपयोग कर सकते हैं ।

C # के लिए आप ToString का उपयोग करते समय प्रारूप स्ट्रिंग का उपयोग कर सकते हैं ।

एक त्वरित Google खोज आपको यह दिखाना चाहिए कि अपनी पसंद की भाषा में संस्कृति का उपयोग कैसे करें।


5

मैं YYYY-MM-DD (और हमेशा चार अंकों के वर्ष और दो अंकों के महीने और दिन लिखता हूं) के साथ जाऊंगा। YYYY-DD-MM, मेरी जानकारी के लिए, असामान्य-से-दुर्लभ है, इसलिए YYYY-MM-DD प्रारूप कम से कम अस्पष्टता वाला है, और अंततः आपके उपयोगकर्ता पकड़ लेंगे। इसके अलावा, आप तुच्छ छँटाई लाभ मिलता है।


2

क्या आप प्रत्येक उपयोगकर्ता को उसके स्वयं के लोकेल दे सकते हैं, जो फिर अपनी स्थानीय प्राथमिकताओं के अनुसार तारीख और अन्य जानकारी प्रदान करता है?


1

कई बार आप अधिकांश रूपरेखाओं में लोकेल और I18n का उपयोग करके कॉन्फ़िगर कर सकते हैं।


0

आप सामान्य मामले में, प्रारूप और मूल्य दोनों को निर्दिष्ट करने की आवश्यकता होगी। यह किसी भी और सभी भ्रम से बचने का एकमात्र तरीका है। उदाहरण के लिए, आप "2011-02-02 (YYYY-MM-DD)" कह सकते हैं। यह हालांकि सादगी और पठनीयता की कीमत पर आता है, इसलिए अपने दर्शकों को जानें।

आप निश्चित रूप से कह सकते हैं, "इसके बाद, सभी तिथियां YYYY-MM-DD .... प्रारूप में हैं।" फिर "2011-02-02" बाद में दिखाई देना असंदिग्ध होगा। यह अधिक प्रभावशाली हो सकता है, लेकिन फिर से, अपने दर्शकों को जानें।


इसके अलावा, सिवाय इसके कि एस्टोनियाई दिन = पावेव और महीने = कुउ, फिलीपिनो में वे हैं: अरवा और बुवान, फिनिश में: पाइवा, कुकुओसी, हंगेरी में: nap, honeap, इन्डोनेशियाई में: hari, bulan, Malteese में: jum, xahar रोमानियाई में: zi, lună, तुर्की में: gün, ay, वियतनामी में: ngày, tháng ... नहीं कई भाषाओं का उल्लेख करने के लिए जहां या तो महीने की शुरुआत m या दिन से नहीं होती है d (जर्मन से शुरू नहीं होती है: Monat, Tag ) साथ ही ऐसी भाषाएँ जो लैटिन वर्णमाला जैसी किसी भी चीज़ का उपयोग नहीं करती हैं।
नौकरी

1
खैर, "2011-02-02" किसी भी मामले में अस्पष्ट है ...;)
मार्टिन

0

यह सुझाव शायद बेकार है, लेकिन मैंने महीनों को रोमन अंकों के रूप में लिखा है। ज़रूर, 3 / XI / 2011 नवंबर 11 या मार्च 3 हो सकता है, लेकिन मुझे लगता है कि पहली व्याख्या अधिक स्वाभाविक है।


1
रोमन संख्याएँ? "प्राकृतिक?"
विंको द सैन

@Wonko, इस अर्थ में "प्राकृतिक" है कि इस संदर्भ में XI को एक महीने के रूप में एक दिन के रूप में व्याख्या किए जाने की अधिक संभावना है। मैं मानता हूँ कि यह बहुत व्यक्तिपरक है।
ggambett

+1, मैं खुद कुछ ऐसा सोच रहा था। फिर भी, मैं आपके आलोचकों से भी सहमत हूँ।
नौकरी

ऐसा होने के बाद, कभी भी उस प्रारूप को नहीं देखा, मुझे लगता है कि पहले "टाइपो" या "अनुवाद त्रुटि" होगी, इससे पहले कि मुझ पर "रोमन संस्कार" लिखा हो। तभी मैं अर्थ का अनुमान लगाने की कोशिश करूंगा।
२४:२४ पर साने

उल्लेख नहीं है कि 3 / II / 2011 को नवंबर के रूप में व्याख्या की जाएगी।
MSalters

0

मैं कहूंगा कि यह इस बात पर निर्भर करता है कि आप क्या कर रहे हैं, इनपुट पर आपका कितना नियंत्रण है, और क्या आप इसे कहीं स्टोर कर रहे हैं?

भंडारण के लिए, मैं माइक डनलवे द्वारा सुझाई गई चीजों का उपयोग करूंगा:

YYYYMMDDHHMMSS, जहां घंटे UTC में है, जिस तरह से मैं जाता हूं, जब भी आपके पास कोई विकल्प होता है, तो आपके द्वारा दिए गए कारणों के लिए। जब मेरे पास कोई विकल्प नहीं होता है, तो मैं उपयोगकर्ता को चुनने देता हूं।

उन्होंने इसे एक उत्तर के रूप में नहीं छोड़ा, इसलिए मैं करूंगा।

एक और बात: सीसी समाप्ति तिथि दर्ज करने के तरीके के निम्नलिखित स्क्रीन शॉट देखें : http://www.ubercart.org/files/credit_card_checkout.jpg

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

जैसा कि मैंने कहा, यह निर्भर करता है। भंडारण के लिए: यदि डेटाबेस का उपयोग किया जाता है, तो जांच लें कि क्या यह पहले से ही एक अच्छा डेटा प्रारूप प्रदान करता है। यदि कुछ अन्य विधि का उपयोग करते हैं, तो देखें कि "YYYYMMDDHHMMSS जहां घंटे UTC में है" मदद करता है। उपयोगकर्ता के लिए इसे प्रस्तुत करने के लिए - ध्यान रखें कि कौन से देश / स्थान संभवतः शामिल हो सकते हैं, फिर सबसे सीधे-सीधे "मुझे मत सोचो" का प्रतिनिधित्व करें। एक विकल्प प्रदान करने पर भी विचार करें।

अंत में, कुछ शांत उत्पादों की जांच करें जो पहले से ही कुछ ऐसा ही करते हैं, और यह पता लगाने की कोशिश करें कि वे कैसे करते हैं।


आह बकवास, जब स्क्रीनशॉट को पढ़कर मुझे लगा कि हम 11 वीं कक्षा के बारे में बात कर रहे हैं ... केवल उस दिन का एहसास करना जरूरी नहीं था जब क्रेडिट कार्ड की समाप्ति तिथि के बारे में बात कर रहे थे: /
मैथ्यू एम।

@ मैथ्यू एम।, हाँ, यह थोड़ा भ्रामक है :) हालांकि, यदि आप अपने हाथ में सीसी पकड़ रहे हैं और डेटा प्रविष्टि करने जा रहे हैं, तो शायद इससे अधिक दर्द होता है। यदि तीन बक्से थे - दिन के लिए एक, तो यह कम अस्पष्ट हो सकता है।
जॉब

0

वेब साइट के अंतिम उपयोगकर्ताओं के लिए कोई सार्वभौमिक दिनांक और समय प्रारूप नहीं है। कोई एकल दिनांक समय मान भी नहीं है क्योंकि मान प्रति ग्राहक के समय क्षेत्र के अनुसार भिन्न होता है। आपको वैश्वीकरण का उपयोग करना चाहिए - डेटा, समय, मुद्रा, कैलेंडर, उपयोगकर्ताओं की संस्कृति के आधार पर नामकरण प्रारूप का लक्ष्यीकरण (यह उपयोगकर्ता के ब्राउज़र से पारित भाषाओं से प्राप्त किया जा सकता है या आपके आवेदन में सीधे लागू स्विच द्वारा प्राप्त किया जा सकता है)। कुछ एपीआई (उदाहरण के लिए .NET) में इस सुविधाओं का प्रत्यक्ष समर्थन है।

डेटाब में भंडारण की तारीख और समय के लिए सार्वभौमिक प्रारूप का उपयोग करें - यूटीसी (सार्वभौमिक समय का समन्वय करें)।


UTC वह सार्वभौमिक नहीं है: यदि आप लीप सेकंड लेना चाहते हैं तो आपको TAI
mouviciel

-2

यह दुर्भाग्यपूर्ण है कि अंतरराष्ट्रीय कंप्यूटिंग दुनिया में सभी खुफिया इस नट को क्रैक नहीं कर सकते हैं।

Microsoft और न ही अन्य विक्रेताओं ने डेट-मास्क को जोड़ने पर विचार किया है, जो महीने को शून्य से भरे, दिन के समान, लेकिन तीन अंकों के रूप में दिखाई देगा। अभ्यास को अपनाने से संशोधित तिथि प्रारूपों की एक नई श्रृंखला को बढ़ावा देने में मदद मिलेगी जो गणितीय रूप से समतुल्य हैं जबकि किसी भी पारंपरिक तिथि लेआउट में पहचान और अंतर करना आसान है। अर्थात्:

  • 0MM-DD-YYYY, उदाहरण के लिए 002-03-2016 फरवरी 03,2016 को

  • DD-0MM-YYYY, उदाहरण के लिए 03-002-2016 03-Feb-2016 के लिए

  • YYYY-0MM-DD, 2016-02-03 के लिए 2016-002-03 जैसे

  • YYYY-DD-0MM, उदाहरण के लिए 2016-03-002 (यदि कोई इसका उपयोग करना चाहता था!)

यह इस तरह से ठीक करने के लिए बहुत आसान लगता है ... मुझे लगता है कि सरल बस अच्छी तरह से नहीं बेचता है।


2
मैं केवल इतना कह सकता हूं: xkcd.com/927 हमारे पास पहले से ही तारीखों के लिए एक आईएसओ मानक है, और दूसरे की आवश्यकता नहीं है।
सिमोन बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.