Die Lokalisierung Datumsformat-Deskriptoren

stimmen
15

Was ist der beste Weg, um ein Datumsformat Descriptor zu lokalisieren?

Wie jeder aus einer Kultur, die das mm / yyyy Format nicht verwenden / dd weiß, ist es ärgerlich Daten in diesem Format eingeben zu müssen. Das .NET Framework bietet einig sehr gute Lokalisierung Unterstützung, so ist es trivial Daten zu analysieren, nach dem Benutzer Kultur, aber Sie wollen oft auch einen hilfreichen Hinweise angezeigt werden wie auf das Format erforderlich (vor allem zwischen yy und yyyy zu unterscheiden, die in austauschbar ist die meisten Kulturen).

Was ist der beste Weg, dies in einer Art und Weise zu tun, die Sinn für die meisten Benutzer machen (zB dd / M / yyy wegen der Änderung bei und das Umschalten zwischen einem und zwei Buchstaben verwirrend ist).

Veröffentlicht am 03/08/2008 um 18:30
quelle vom benutzer
In anderen Sprachen...                            


7 antworten

stimmen
6

Verwenden Sie einfach ISO-8601 . Es ist ein internationaler Standard.

Date and time (current at page generation) expressed according to ISO 8601:
Date:                           2014-07-05
Combined date and time in UTC:  2014-07-05T04:00:25+00:00
                                2014-07-05T04:00:25Z
Week:                           2014-W27
Date with week number:          2014-W27-6
Ordinal date:                   2014-186
Beantwortet am 03/08/2008 um 19:18
quelle vom benutzer

stimmen
4

Ich habe mit der OP ‚falsch‘ stimmen Termine wirklich mit meiner DD / MM / YYYY Erziehung jar und ich finde ISO 8601 Daten und Zeiten extrem leicht zu verarbeiten. Für einmal der Standard bekam es richtig und engtech hat die offensichtliche Antwort , die nicht Lokalisierung erfordert.

Ich wollte das Geburtstag Eingabeformular auf Stack-Überlauf als einen Fehler melden, weil, wie viel von einem wunden Daumen an die Mehrheit der Welt ist.

Beantwortet am 04/08/2008 um 19:50
quelle vom benutzer

stimmen
2

Hier ist meine aktuelle Methode. Irgendwelche Vorschläge?

Regex singleMToDoubleRegex = new Regex("(?<!m)m(?!m)");
Regex singleDToDoubleRegex = new Regex("(?<!d)d(?!d)");
CultureInfo currentCulture = CultureInfo.CurrentUICulture;

// If the culture is netural there is no date pattern to use, so use the default.
if (currentCulture.IsNeutralCulture)
{
    currentCulture = CultureInfo.InvariantCulture;
}

// Massage the format into a more general user friendly form.
string shortDatePattern = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern.ToLower();
shortDatePattern = singleMToDoubleRegex.Replace(shortDatePattern, "mm");
shortDatePattern = singleDToDoubleRegex.Replace(shortDatePattern, "dd");
Beantwortet am 03/08/2008 um 18:31
quelle vom benutzer

stimmen
1

Eine Kurzform ist bequem und hilft Rechtschreibfehler zu vermeiden. Localize als zutreffend, aber sicher sein , das erwartete Format angezeigt werden (lassen Sie den Benutzer nicht blind). Stellt eine Datumsauswahl - Steuer als optionale aide im Feld zu füllen.

Als Extra kann on-the-fly-Analyse und Anzeige des Datums in der langen Form zu helfen.

Beantwortet am 04/08/2008 um 20:13
quelle vom benutzer

stimmen
1

Das Problem mit den internationalen Standards ist, dass so ziemlich niemand nutzt sie. Ich versuche, wo ich kann, aber ich bin gezwungen tt / mm / jjjj fast überall im wirklichen Leben zu verwenden, was bedeutet, dass ich so daran gewöhnt bin, es ist immer ein bewusster Prozess ISO-8601 zu verwenden. Für die Mehrheit der Menschen, die ISO-8601 nicht einmal versuchen zu verwenden, ist es noch schlimmer. Wenn Sie internationalisieren können, wo man, denke ich, es ein großer Vorteil ist.

Beantwortet am 04/08/2008 um 09:14
quelle vom benutzer

stimmen
1

Wie sei es gibt das Format (mm / tt / oder tt / mm / jjjj) , gefolgt von einem Ausdruck vom heutigen Tag in der Kultur des Benutzers. MSDN hat einen Artikel über die Formatierung einen Datetime für die Kultur der Person , mit dem Cultureinfo- Objekt , das in tut dies hilfreich sein könnte. Eine Kombination aus dem Format mit dem aktuellen Datum in diesem Format dargestellt kombiniert (die meisten Menschen vertraut sind) auf die Person genug ein Hinweis sein, wie sie das Datum eingeben sollten. (Auch ein Kalendersteuerelement für diejenigen , die immer noch kann es nicht herausfinden).

Beantwortet am 03/08/2008 um 18:37
quelle vom benutzer

stimmen
0

Die beste Option : Ich würde stattdessen empfehlen eine Standard - Datumsauswahl zu verwenden.

Alternative : Jedes Mal , wenn der Inhalt des Edit - Control ändert, analysiert sie und Anzeige (in einem separaten Steuer?) , Um das lange Format des Datums ( das heißt: Eingang „03/04/09“ display „Ihre Eingabe: 4. März 2009“ )

Beantwortet am 19/09/2008 um 18:02
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more