J'ai la date représentée comme un entier comme 20140820
et je veux l'analyser en tant que datetime, comme 2014.08.20.
Dois-je analyser chaque valeur entière (2014) (08) (02) à l'aide de l'index ou existe-t-il un moyen plus simple?
Si votre CurrentCulture
prend en charge le format yyyyMMdd
comme format de date et d'heure standard , vous peut simplement utiliser DateTime.Parse
méthode comme;
int i = 20140820;
DateTime dt = DateTime.Parse(i.ToString());
S'il ne prend pas en charge, vous devez utiliser les méthodes DateTime.ParseExact
ou DateTime.TryParseExact
pour l'analyser en tant que format de date et d'heure personnalisé.
int i = 20140820;
DateTime dt;
if(DateTime.TryParseExact(i.ToString(), "yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
Ensuite, vous pouvez formater votre DateTime
avec la méthode .ToString()
comme;
string formattedDateTime = dt.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture);
Le moyen le plus simple et le plus performant serait quelque chose comme:
int date = 20140820;
int d = date % 100;
int m = (date / 100) % 100;
int y = date / 10000;
var result = new DateTime(y, m, d);
Essaye ça :-
string time = "20140820";
DateTime theTime= DateTime.ParseExact(time,
"yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
OR
string str = "20140820";
string[] format = {"yyyyMMdd"};
DateTime date;
DateTime.TryParseExact(str,
format,
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
out date))
maintenant, la variable date
aura requis converted date of string '20140820'