54 votes

Comment puis-je convertir un DateTime en un int ?

J'ai le DateTime suivant 25/04/2011 17:12:13 PM et essayé ceci pour le convertir en int

  int result = dateDate.Year * 10000 + dateDate.Month * 100 
             + dateDate.Day + dateDate.Hour + dateDate.Minute + dateDate.Second;

Mais il obtient toujours 2011425, comment puis-je également obtenir le temps?

61voto

Stecya Points 12073
long n = long.Parse(date.ToString("yyyyMMddHHmmss"));

voir Chaînes de format de date et d'heure personnalisées

6voto

Jackson Pope Points 9294

Je pense que vous voulez (cela ne rentre pas dans un int cependant, vous devrez le stocker en tant que long ):

 long result = dateDate.Year * 10000000000 + dateDate.Month * 100000000 + dateDate.Day * 1000000 + dateDate.Hour * 10000 + dateDate.Minute * 100 + dateDate.Second;

Alternativement, stocker les tiques est une meilleure idée.

3voto

Unsliced Points 5800

Voulez-vous un "int" qui ressemble à 20110425171213 ? Dans ce cas, vous feriez mieux de ToString avec le format approprié (quelque chose comme 'aaaaMMjjHHmmss'), puis de convertir la chaîne en un entier (ou un int long et non signé car ce sera bien plus de 32 bits).

Si vous voulez une valeur numérique réelle (le nombre de secondes depuis l'année 0) alors c'est un calcul très différent, par exemple

 result = second
result += minute * 60
result += hour * 60 * 60
result += day * 60 * 60 * 24 

etc.

Mais vous feriez mieux d'utiliser Ticks.

0voto

l1k0pl4st1 Points 9
string date = DateTime.Now.ToString();

date = date.Replace("/", "");
date = date.Replace(":", "");
date = date.Replace(" ", "");
date = date.Replace("AM", "");
date = date.Replace("PM", "");            
return date;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X