2010-11-29 3 views
1

Nous avons un problème avec le format de date .net intégré. Nous utilisons le format abrégé du mois:Remplacer la mise en forme de la date pour une culture dans .net

string.Format("{0:MMM}", date); 

Pour notre site tchèque, il émet des chiffres romains (par exemple, « IV » où, en en-GB, il serait « TC »). Nous voulons changer cela en quelques abréviations personnalisées.

Quelle est la meilleure façon de faire cela? Je ne veux pas vraiment mettre une instruction if dans la vue. Dois-je utiliser un DateTimeFormatInfo?

De même, comment Microsoft décide-t-il de la mise en forme, est-ce basé sur un standard?

Répondre

0

Quelle culture voulez-vous utiliser? Vous pouvez simplement le spécifier dans l'appel à string.Format. Par exemple:

string text = string.Format(CultureInfo.InvariantCulture, "{0:MMM}", date); 

Notez que si c'est vraiment tout ce que vous êtes en forme, il serait plus simple d'appeler ToString:

string text = date.ToString("MMM", CultureInfo.InvariantCulture); 

(De cette façon, vous n'avez pas besoin de toute la mise en forme composite trucs.)

+1

Ceci est un site multilingue et nous définissons la culture de threads en fonction du paramètre du navigateur (ou cookie). Toutes les autres langues produisent le format souhaité. C'est juste la culture cs-CZ que nous devons changer. – JontyMC

+0

@JontyMC: Dans ce cas, lorsque vous définissez la culture de threads, vous devriez peut-être utiliser cs-CZ pour utiliser une culture différente, ou une autre avec 'DateTimeFormatInfo' différente. –

+0

Il n'y a vraiment aucun moyen de changer la valeur par défaut. J'ai aussi un site multilingue, mais le client n'aime pas les valeurs par défaut pour certaines langues. –

Questions connexes