2017-07-16 3 views
0

Je voudrais soutenir la langue anglaise pour la culture formatée européenne.CultureInfo. Numéro et date Format européen avec support en anglais?

Les dates doivent être affichées en anglais en utilisant le format européen. Donc, "14:00 Dimanche, 16/Juillet/2017" devrait être affiché et non à la manière britannique ... En fait, la culture irlandaise est OK pour cela! Par la suite, par exemple quand j'ai besoin de montrer la devise, je voudrais qu'il soit formaté comme «1.500,00 €». Maintenant, afin de soutenir la langue anglaise, si j'utilise la culture britannique, je reçois le signe de la livre sterling. Si j'utilise la culture irlandaise, j'obtiens "1 500,00 €", ce qui n'est pas la manière standard de formater la monnaie en Europe.

Je voudrais en l'état actuel de ma demande de soutenir en-US et (s'il y avait une telle chose) en-EU. Des idées? Ai-je besoin de créer une culture personnalisée? Des pointeurs?

Répondre

0

Dans notre application, tous les objets sont stockés dans DateTimeUTC et converties en une représentation appropriée par une méthode d'assistance dans notre cadre:

public static string ToString(DateTime? date, string format) 
{ 
    if (date.HasValue) 
     return String.Format("{0:}"+format, date); 
    else return ""; 
} 

où le format est récupéré à partir de nos langues stockées.

decimal Les propriétés représentant la devise sont également converties par une méthode d'assistance dans notre cadre. Pour cela, nous utilisons NumberFormatInfo:

 numberFormat = new NumberFormatInfo(); 
     numberFormat.CurrencyDecimalSeparator = "."; 
     numberFormat.CurrencyGroupSeparator = ""; 
     numberFormat.NumberDecimalSeparator = "."; 
     numberFormat.NumberGroupSeparator = ""; 

Et puis utilisez la création NumberFormatInfo:

price.ToString(numberFormat); 

Le plus grand avantage de cette approche est que vous pouvez créer vos propres préférences, malgré ce que quelqu'un d'autre pensée comme logique et que ces méthodes prennent en charge les paramètres utilisateur personnalisés. L'inconvénient est que vous avez besoin de créer des langues et des formats pour chaque pays que vous soutenez.

+0

Merci pour votre réponse. Pourtant, même si je demande à l'utilisateur sur sa façon préférée d'afficher les chiffres et la monnaie, il y a des problèmes avec les dates ... Aux Etats-Unis, jeudi 20 juillet 2017, dans UE jeudi 20 juillet 2017. Aux États-Unis, 19h24 , dans UE 19:24 (pas de PM, AM). Des idées à propos de ça? – Panos

+0

@Panos même solution, technique différente. Incluez le format à utiliser pour afficher une date dans les paramètres régionaux d'un utilisateur. Il se compose généralement de 3 éléments: 1. Afficher le jour de la semaine, afficher l'abréviation pour le jour de la semaine, pas de jour de la semaine. (Long date in excel) 2. Indique s'il faut afficher l'heure en AM/PM, l'heure numérique ou pas de temps. 3. Dans quel format afficher la date dans (2017/07/13, 2017/13/07 ou 13/07/2017 Combinez ces trois valeurs de paramètres régionaux de chaîne dans la valeur de modèle appropriée .ToString(), puis simplement transmettre cela à n'importe quelle méthode convertit les dates en chaînes. – Chrotenise