Descripteurs de format localiser date

voix
15

Quelle est la meilleure façon de localiser un descripteur de format de date?

Tous ceux d'une culture qui n'utilise pas le format mm / jj / aaaa sait, il est ennuyeux d'avoir à entrer des dates dans ce format. Le .NET Framework fournit une très bon support de localisation, il est trivial d'analyser les dates en fonction de la culture des utilisateurs, mais vous voulez souvent aussi afficher une indication utile pour le format requis (en particulier de faire la distinction entre yy et yyyy qui est interchangeable dans la plupart des cultures).

Quelle est la meilleure façon de le faire d'une manière qui sens pour la plupart des utilisateurs (par exemple dd / M / yyy est source de confusion en raison du changement dans le cas et la commutation entre un et deux lettres).

Créé 03/08/2008 à 18:30
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
6

Il suffit d' utiliser ISO-8601 . Il est une norme internationale.

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
Créé 03/08/2008 à 19:18
source utilisateur

voix
4

Je suis d'accord avec le « mauvais » OP dates jar vraiment avec mon éducation DD / MM / YYYY et je trouve les dates ISO 8601 et des temps extrêmement facile à travailler. Pour une fois la norme sait et EngTech a la réponse évidente qui ne nécessite pas la localisation.

J'allais signaler la forme d'entrée d'anniversaire sur débordement pile comme un bug à cause de la quantité d'un pouce endolori, il est à la majorité du monde.

Créé 04/08/2008 à 19:50
source utilisateur

voix
2

Voici ma méthode actuelle. Aucune suggestion?

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");
Créé 03/08/2008 à 18:31
source utilisateur

voix
1

Une forme courte est pratique et permet d' éviter les erreurs d'orthographe. Le cas échéant la localisation, mais assurez - vous d'afficher le format attendu (ne laissez pas les aveugles utilisateur). Fournir un contrôle sélecteur de date comme une option aide pour remplir le champ.

En supplément, à la volée et l'analyse syntaxique affichage de la date sous forme longue pourrait aider aussi.

Créé 04/08/2008 à 20:13
source utilisateur

voix
1

Le problème avec les normes internationales est que à peu près Noone les utilise. J'essaie où je peux, mais je suis obligé d'utiliser jj / mm / aaaa presque partout dans la vie réelle, ce qui signifie que je suis tellement habitué qu'il est toujours un processus conscient d'utiliser ISO-8601. Pour la majorité des gens qui ne tentent même pas d'utiliser ISO-8601, il est encore pire. Si vous pouvez internationaliser où vous pouvez, je pense qu'il est un grand avantage.

Créé 04/08/2008 à 09:14
source utilisateur

voix
1

Que diriez - vous de donner le format (mm / jj / aaaa ou jj / mm / aaaa) suivi d'une version imprimée de la date d'aujourd'hui dans la culture de l'utilisateur. MSDN a un article sur le formatage d' un DateTime pour la culture de la personne , en utilisant l'objet CultureInfo qui pourrait être utile à faire. Une combinaison du format (que la plupart des gens sont familiers avec) combinée à la date représentée dans ce format devrait être suffisant d'un indice de la personne sur la façon dont ils devraient entrer la date. (Inclure également un contrôle de calendrier pour ceux qui ne peuvent toujours pas comprendre dehors).

Créé 03/08/2008 à 18:37
source utilisateur

voix
0

La meilleure option : Je recommande plutôt d'utiliser un sélecteur de date standard.

Alternative : chaque fois que le contenu des changements de contrôle d'édition, parser et affichage (dans un contrôle séparé?) Long format de la date (ex: entrée « 03/04/09 » Affichage « Votre entrée: 4 Mars, 2009 » )

Créé 19/09/2008 à 18:02
source utilisateur

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