Dois-je utiliser ToString () ou GetDateTimeFormats () pour formater un DateTime?
Je sais comment faire pour formater un DateTime
comme un String
. Il peut y avoir plusieurs façons de formater un DateTime
comme un String
et j'ai trouvé quelques questions liées à DateTime
mise en forme.
Mais j'ai trouvé et essayé de deux façons:
GetDateTimeFormats()
ToString("MM/dd/yyyy")
J'ai essayé ce code:
public static class DateTimeFormates
{
public static string FormatMyDate(this DateTime DT)
{
//My Actual Date Time Comes in this Format
//8/23/2013 12:43:12 PM
//I'm expecting Format like below
String FormatWayOne = DT.GetDateTimeFormats()[3];
//08/23/2013
String FormatWayTwo = DT.ToString("MM/dd/yyyy");
//08/23/2013
return FormatWayOne;
}
}
J'ai un Global
classe avec Global
méthode pour formater un DateTime
comme un String
. Mais ici, ce que je veux savoir quelle méthode est la meilleure pratique afin que je puisse l'utiliser? La méthode est appelé dans toute l'application.
source d'informationauteur RajeshKdev
Vous devez vous connecter pour publier un commentaire.
GetDateTimeFormats
n'est pas un remplacement pourToString
et vice versa. Si vous connaissez le format que vous souhaitez, il n'y a pas besoin d'appelerGetDateTimeFormats
. Ainsi qu'il est plus clair d'utiliserToString
le document pourGetDateTimeFormats
membres de cette (l'emphase est mienne)Cela pourrait briser votre code comme le troisième élément pourrait être quelque chose d'autre, lorsque vous exécutez dans une autre culture.
En utilisant ToString, vous êtes en évitant d'avoir à parcourir tous les formats de date (donc plus efficace) et vous êtes à la rendre plus claire de ce format que vous souhaitez, tout en veillant à ce que le format retourné est celui que vous voulez.
ToString est plus clair, et aussi il n'utilise pas un nombre magique qui peut ne pas fonctionner de la prochaine version de cadre/une autre culture. Utilisation
ToString()
.Les deux sont bons pour leurs propres besoins.
GetDateTimeFormats()
Convertit la valeur de cette instance à toutes les représentations de chaîne pris en charge par le standard de la date et de l'heure les spécificateurs de format. Ce qui signifie que c'est une opération coûteuse et l'obtention de la troisième élément à chaque fois peut vous donner des résultats différents. Vous n'avez pas besoin de convertir tous les formats alors pourquoi le faire?
ToString()
Convertit la valeur de l'objet DateTime à son équivalent représentation de chaîne en utilisant le format spécifié.
Comme Deuxième méthode (ToString) est seulement la conversion de vos format et est bien plus lisible. Par conséquent préférable. Alors que, si vous utilisez la première méthode, vous serez la conversion de près de 100 formats lorsque vous avez besoin d'un seul.
Je préfère
ToString(format)
version seulement. mais pas le format que vous avez montré à titre d'exemple. Il peut vous vis à travers la culture.Jetons un coup d'oeil à l'exemple suivant.
Ne vais pas parler de
GetDateTimeFormats
ici, puisque c'est un overkill.Vous vous demandez comment
fmt1a
pouvez retournerMM-dd-yyyy
quand vous ditesMM/dd/yyyy
? parce que/
est un caractère spécial qui est utilisé pour représenterDateTimeFormatInfo.DateSeperator
de la culture actuelle.Donc, je vous suggère d'utiliser la mise en forme personnalisée sans
/
pour la sérialisation et toute autre mise en forme de l'INTERFACE utilisateur.J'ai été en utilisant .ToString(format) depuis des années, et il n'est jamais let me down. Vous pouvez utiliser construite en formats, ou personnaliser votre propre.
Si vous voulez seulement la date et comme je le vois, la culture, le format est correct, il suffit d'utiliser la méthode datetime ToShortDateString
Mais l'utilisation de ce dans une extesion méthode n'a aucun sens. Si vous voulez convertir une date dans le format de toujours afficher en MM/jj/aaaa, vous devez d'abord ensemble, puis de la culture et de l'appel de la méthode.
Vérifier ici le bon code pour utiliser http://msdn.microsoft.com/es-es/library/system.datetime.toshortdatestring.aspx