DateTime.Analyser Américain Format De Date C#
probablement une question simple -
je lis les données d'un certain nombre de fichiers.
mon problème, c'est que quand je lis dans la date d'un fichier américain, je l'analyse comme ceci:
DateSold = DateTime.Parse(t.Date)
ceci analyse la chaîne T. Date dans un format de date, cependant il formats la date américaine à une date européenne, par exemple
Si la date est dans le fichier 03/01/2011, c'est de lire que le 3 janvier 2011, alors qu'il devrait être le 1er Mars 2011.
y a-t-il un moyen de le faire de sorte qu'il se formate à la date européenne?
5 réponses
var dt = DateTime.ParseExact(t.Date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
le DateTime lui-même n'a pas de formatage, ce n'est que lorsque vous le convertissez à ou à partir d'une chaîne que le format est pertinent.
pour visualiser votre date au format Américain, vous passez le format à la méthode ToString
string americanFormat = dt.ToString("MM/dd/yyyy");
si vous analysez la date à partir d'un fichier qui est spécifiquement un fichier formaté aux États-Unis, alors passez simplement l'information sur la culture américaine dans la fonction d'analyse comme suit:
var usCulture = "en-US";
var dateValue = DateTime.Parse(dateString, new CultureInfo(usCulture, false));
de cette façon, vous pouvez simplement échanger la chaîne de culture par région différente requise pour l'analyse. En outre, vous n'avez plus à rechercher les nuances de format datetime spécifiques pour chaque culture comme .Net prendra soin de cela pour vous comme prévu.
Utiliser DateTime.ParseExact
ou DateTime.TryParseExact
lors de l'analyse, et spécifiez une chaîne de format lorsque vous formatez avec ToString
trop.
notez Qu'il n'y a pas de "rendez-vous américain" après avoir été analysé. DateTime
la valeur a aucun concept de formatage.
on dirait que vous n'êtes pas vraiment intéressé par le Parse
part autant que la partie formatage, par exemple
string formatted = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
... mais je vous recommande de contrôle à la fois l'analyse syntaxique et mise en forme de manière explicite.
si vous avez des formats de fichier différents, vous aurez besoin de donner des chaînes de format différentes lorsque vous lisez chaque fichier. Comment vous alors format les données sont d'une décision distincte.
Si vous connaissez le format à l'avance, vous pouvez utiliser DateTime.ParseExact, en utilisant le format américain comme chaîne de format.
string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012
string formatteddate=DateTime.Now.ToString("D") // output: Monday, November 08, 2012
string formatteddate=DateTime.Now.ToString("f") // output: Monday, November 08, 2012 3:39 PM
string formatteddate=DateTime.Now.ToString("g") // output: Monday, November 08, 2012 3:39:46 PM
string formatteddate=DateTime.Now.ToString("d") // output: 11/8/2012 3:39 PM
plus de format date-heure dans asp.net est donnée ici.
http://dateformat.blogspot.in/2012/09/date-time-format-in-c-aspnet.html