2010-02-09 4 views
4

Quelle couche d'un système une date doit-elle être formatée? La date doit-elle être formatée lorsqu'elle est sélectionnée dans la base de données (couche de données) ou doit-elle être formatée au niveau de la couche de présentation?
Je pense que le formatage est une préférence visuelle, donc j'aurais tendance à le placer le plus près possible de la couche de présentation.Quelle couche doit être formatée?

Où stockez-vous la chaîne de format pour la date préférée?

Répondre

7

La date (également comme argent et autres formats numériques) doit être formatée sur la couche de présentation. La chaîne de format fait généralement partie des informations sur les paramètres régionaux. Je suggère de lire sur l'internationalisation (également connu sous le nom i8n). Compte tenu de votre surnom est C# 'ish ici est un endroit à regarder:

Microsoft .Net Internationalization

+0

Je suis avec vous sur la globalisation, mais dans certains cas il y a plusieurs formats de dates 'acceptables' pour une culture ... d'accord sur la couche de présentation ... et on dirait que tout le monde le fait ... – CSharpAtl

+0

S'il y a plusieurs formats de date «acceptable» alors je pense qu'ils doivent encore être segmentés par les paramètres régionaux. –

+0

Si l'OS a un moyen de laisser l'utilisation choisir ce qu'il veut, alors utilisez-le. Ne supposez jamais la localisation && keyboard => langue, respectez le choix de l'utilisateur! – lexu

1

Vous devez formater votre date sur la couche de présentation. Je placerais généralement la propriété date comme type de chaîne sur mon ViewModel et la mise en forme se produirait lors de la définition sur le ViewModel. Stockez-le comme un objet de date régulière dans votre entité.

1

La date devrait être formated aussi proche de la présentation comme feasable, comme vous dites.

Si le système d'exploitation a déjà des informations de formatage (localisation), utilisez-le et n'enregistrez pas de copie!

0

La mise en forme doit être faite à la couche de présentation à mon humble avis

1

Absolument oui, le formatage se produit dans la couche de présentation. Jusqu'à ce point, vous détenez les données dans le format interne le plus logique - pour les dates, cela peut être un DATETIME ou équivalent, ou une représentation binaire; tout ce qui est préférable pour le tri, le stockage, etc

Vous ne le transformez pas en quelque chose qui en fait ressemble comme une date jusqu'à ce qu'il doit être affiché (ou autrement sortie sous forme lisible par l'homme) à quel point vous convertissez-le et appliquez tous les attributs de mise en forme régionaux ou personnalisés. Ces attributs sont essentiellement votre «chaîne de formatage», et vous stockez ceux-ci dans la base de données (si centralisée) ou peut-être le fichier de configuration local sur le PC des utilisateurs. Personnellement, j'ai tendance à conserver les règles par défaut "standard" ou "communes" dans la base de données, puis à ajouter des remplacements spécifiques à l'utilisateur ou à la région au point d'affichage.

0

Un autre vote pour le formatage à la couche de présentation. J'irais plus loin, et regarder si les dates devraient être stockées dans UTC dans la base de données, et la conversion se produit plus haut dans le flux.

Questions connexes