2015-02-26 1 views
1

Je suis en train de coder une application Internet MVC 5 et de déployer cette application sur Azure. Toutes les valeurs DateTime sont stockées au format UTC.Obtention d'un emplacement d'utilisateurs Web pour la conversion DateTime CultureInfo

Quelle est la meilleure façon d'afficher ces valeurs en temps local pour l'internaute? Je sais comment convertir un DateTime UTC en LocalTime, mais je ne suis pas sûr de la meilleure façon d'afficher ces valeurs DateTime pour les utilisateurs internationaux qui utilisent le site Web Azure.

Je l'ai fait quelques recherches et j'ai lu que ce qui suit peut se faire:

  1. Obtenez le tableau de chaînes HttpRequest.UserLanguages.
  2. Récupère son premier élément. Le premier élément indique la langue et la région par défaut ou préférées de l'utilisateur.
  3. Instancier un objet CultureInfo qui représente la culture préférée de l'utilisateur en appelant le constructeur CultureInfo.CultureInfo (String, Boolean).
  4. Convertissez le format UTC DateTime en utilisant l'objet CultureInfo.

Existe-t-il un moyen meilleur/plus facile de le faire? Cela doit-il être fait dans chaque résultat de contrôleur/action, ou cela peut-il être fait en un seul endroit? Est-ce que quelqu'un a écrit du code que je peux utiliser plutôt que d'écrire mon propre code?

Merci d'avance.

Répondre

1

Ajouter à votre config web:

<configuration> 
    <system.web> 
    <globalization culture="auto:en-US" uiCulture="en-US" /> 
    </system.web> 
</configuration> 

Si vous n'êtes pas raboter d'utiliser des ressources localisées, vous pouvez omettre la uiCulture partie de la configuration.

Ce paramètre passe automatiquement la requête ASP.NET au navigateur langue du client si une correspondance peut être trouvée. Si le navigateur ne fournit pas de langue ou si la langue ne peut pas être associée à l'une des cultures installées .NET , la valeur de repli est utilisée - dans ce cas, en-US.

Ce paramètre s'applique à CurrentCulture du thread de requête ASP.NET et à UICulture . La culture est basculée très tôt dans le cycle de vie HttpApplication ASP.NET , de sorte que vous voyez la culture sélectionnée appliquée et disponible même dans Application_BeginRequest, puis pendant le reste du cycle de demande.

The full article about this