In Kanada ist jeder mit dem Datumsformat vertraut YYYY-MM-DD
. In Europa oder Südafrika bevorzugen sie DD-MM-YYYY
. Es gibt Benutzer aus Südafrika, die mit dem YYYY-MM-DD
Datumsformat verwechselt werden. Gibt es eine Möglichkeit, mit dieser Situation umzugehen?
Ich dachte daran, das folgende Methodenformat für alle zu verwenden: Feb 02, 2011
websites
date-format
formatting
standards
ambiguity
Thierry Lam
quelle
quelle
DD-MM-YYYY
." Außer zB in Ungarn (YYYY.MM.DD
) oder Finnland (DD.MM.YYYY
) oder ... Entschuldigung, die Realität ist chaotisch :-(prefix_1999_12_23_16_45_53.ext
. Hauptgrund: Das war verdammt einfach zu sortieren, zu suchen und zu analysieren. Bei der Suche möchten Sie wirklich zuerst mit der wichtigsten Einheit beginnen, um das Ziel so schnell wie möglich zu erreichen. Diese Art von Zeichenfolge ist sogar binärbaumfreundlich. Das Labor wurde von Studenten aus Europa dominiert, aber ich denke, dies war nur gesunder Menschenverstand, wenn nicht ein wissenschaftlicher Standard. In einem Land, in dem ich aufgewachsen bin, haben wir jedoch TT-MM-JJJJ für den täglichen Gebrauch verwendet. Begründung: Wenn Sie aufwachen, was ist der erste Teil, den Sie wissen möchten?Antworten:
Der mehrdeutige Teil besteht darin, Tag und Monat zu unterscheiden, wenn sie durch Zahlen dargestellt werden.
Bedeutet 02/03 Februar 03 oder März 02?
Indem Sie die Monatskennung von ihrer Nummer mit ihrem Namen ändern , entfernen Sie diese Mehrdeutigkeit. Um Ihre Frage zu beantworten,
Feb 02, 2011
scheint Ihre Variante eine gute Lösung zu sein.Es gibt immer noch ein potenzielles Problem mit der Jahreszahl, wenn Sie sie nur mit zwei Ziffern schreiben, aber dann ist es einfach zu beheben (verwenden Sie 4).
quelle
Nein, es gibt kein allgemein anerkanntes Datumsformat.
ISO 8601 Definiert einen internationalen Standard für Datumsformate. Als solches ist es wahrscheinlich der beste Kompromiss. Aber wie Sie sagen, mögen Benutzer dieses Format nicht immer.
Die einzig richtige Lösung besteht darin, ein anderes Format für verschiedene Länder zu präsentieren. Möglicherweise gibt es eine Standardbibliothek, um dies zu erreichen, wenn Ihre gewählte Programmiersprache eine bedeutende Anhängerschaft hat.
quelle
Sie sollten dafür die Kulturinformationen verwenden. Oder zumindest das lokale Anzeigeformat.
In JavaScript können Sie die toLocaleString-Methode für die Date-Klasse verwenden .
Für C # können Sie die Formatzeichenfolge verwenden, wenn Sie ToString verwenden .
Eine schnelle Google-Suche sollte Ihnen zeigen, wie Sie die Kultur in der Sprache Ihrer Wahl verwenden können.
quelle
Ich würde mit JJJJ-MM-TT gehen (und immer vierstellige Jahre und zweistellige Monate und Tage ausschreiben). JJJJ-TT-MM ist meines Wissens ungewöhnlich bis selten, daher ist das Format JJJJ-MM-TT das Format mit der geringsten Mehrdeutigkeit, und Ihre Benutzer werden es schließlich verstehen. Außerdem erhalten Sie den Vorteil der einfachen Sortierung.
quelle
Können Sie jedem Benutzer sein eigenes Gebietsschema geben, das dann Daten und andere Informationen gemäß seinen lokalen Vorlieben wiedergibt?
quelle
Oft können Sie das Gebietsschema konfigurieren und I18n in den meisten Frameworks verwenden.
quelle
Im Allgemeinen müssen Sie sowohl das Format als auch den Wert angeben. Dies ist der einzige Weg, um jegliche Verwirrung zu vermeiden. Sie können beispielsweise "2011-02-02 (JJJJ-MM-TT)" sagen. Dies geht jedoch zu Lasten der Einfachheit und Lesbarkeit. Kennen Sie also Ihr Publikum.
Sie können natürlich sagen: "Im Folgenden haben alle Daten das Format JJJJ-MM-TT ...." Dann ist "2011-02-02", das später erscheint, eindeutig. Das kann schmackhafter sein, aber kennen Sie auch hier Ihr Publikum.
quelle
Dieser Vorschlag ist wahrscheinlich nutzlos, aber ich habe Monate gesehen, die als römische Ziffern geschrieben wurden. Sicher, 3 / XI / 2011 ist vielleicht der 11. November oder der 3. März, aber ich denke, die erste Interpretation ist natürlicher.
quelle
Ich würde sagen, dass es davon abhängt, was Sie tun, wie viel Kontrolle Sie über die Eingabe haben und speichern Sie sie irgendwo?
Für die Lagerung würde ich verwenden, was von Mike Dunlavey vorgeschlagen wurde:
Er hat dies nicht als Antwort hinterlassen, also werde ich es tun.
Noch etwas: Sehen Sie sich den folgenden Screenshot an, in dem Sie erfahren, wie das CC-Ablaufdatum eingegeben wird: http://www.ubercart.org/files/credit_card_checkout.jpg
Das Tolle an diesem Beispiel ist, dass es Sie nicht zum Nachdenken bringt. Es werden sowohl Zahlen als auch Namen für den Monat verwendet. Ich würde in Betracht ziehen, etwas Ähnliches für die Eingabe zu verwenden. Geben Sie für den Monat sowohl die Nummer als auch den lokalisierten Namen an. Verwenden Sie für Jahr und Tag numerische Auf- / Ab- oder Kombinationsfelder. Dann scheint die Kalendersteuerung auch geschickt zu sein.
Wie gesagt, es kommt darauf an. Für die Speicherung: Wenn Sie eine Datenbank verwenden, prüfen Sie, ob diese bereits ein gutes eindeutiges Datenformat bietet. Wenn Sie eine andere Methode verwenden, prüfen Sie, ob "JJJJMMTTHHMMSS, bei der die Stunde in UTC steht" hilfreich ist. Um es dem Benutzer zu präsentieren, berücksichtigen Sie, welche Länder / Gebietsschemata möglicherweise beteiligt sein können, und wählen Sie dann die einfachste Art der Darstellung "Lassen Sie mich nicht nachdenken". Erwägen Sie auch die Bereitstellung einer Option.
Schauen Sie sich zum Schluss einige coole Produkte an, die bereits etwas Ähnliches tun, und versuchen Sie herauszufinden, wie sie es tun.
quelle
Es gibt kein universelles Datums- und Uhrzeitformat für die Endbenutzer der Website. Es gibt auch keinen einzelnen Datums- / Uhrzeitwert, da der Wert je nach Zeitzone des Kunden unterschiedlich ist. Sie sollten die Globalisierung verwenden - das Targeting von Daten-, Zeit-, Währungs-, Kalender- und Nubmerformaten basierend auf der Benutzerkultur (kann aus akzeptierten Sprachen empfangen werden, die vom Browser des Benutzers übergeben werden, oder über einen direkt in Ihrer Anwendung implementierten Schalter). Einige APIs (z. B. .NET) unterstützen diese Funktionen direkt.
Verwenden Sie zum Speichern von Datum und Uhrzeit in der Datenbank das Universalformat - UTC (Koordinaten-Universalzeit).
quelle
Es ist bedauerlich, dass die gesamte Intelligenz in der internationalen Computerwelt diese Nuss nicht knacken kann.
Weder Microsoft noch andere Anbieter haben in Betracht gezogen, eine Datumsmaske hinzuzufügen, die den Monat wie den Tag mit Null gefüllt erscheinen lässt, jedoch dreistellig. Die Übernahme der Praxis würde dazu beitragen, eine neue Reihe geänderter Datumsformate zu fördern, die mathematisch äquivalent sind und dennoch in einem der traditionellen Datumslayouts leicht zu identifizieren und zu unterscheiden sind. Das ist:
0 MM-TT-JJJJ, z. B. 002-03-2016 für den 03. Februar 2016
TT-0MM-JJJJ, zB 03-002-2016 für 03-Feb-2016
JJJJ-0MM-TT, zB 2016-002-03 für 2016-02-03
JJJJ-TT-0MM, zB 2016-03-002 (wenn jemand es benutzen wollte!)
Scheint zu einfach, um es auf diese Weise zu beheben ... Ich denke, einfach verkauft sich einfach nicht gut.
quelle