Comment convertir un DateTime en un nombre entier ?
Editar: Comment convertir un DateTime en une valeur de type String ?
Ejemplo
String return value of 20100626144707 (for 26th of June 2010, at 14:47:07)
Comment convertir un DateTime en un nombre entier ?
Editar: Comment convertir un DateTime en une valeur de type String ?
Ejemplo
String return value of 20100626144707 (for 26th of June 2010, at 14:47:07)
Cela ne peut pas être représenté comme un entier, cela déborderait. Il peut cependant être un long.
DateTime dateTime = new DateTime(2010, 6, 26, 14, 44, 07);
long time = long.Parse(dateTime.ToString("yyyyMMddHHmmss"));
Cependant, il serait plus intuitif de l'exprimer simplement sous forme de chaîne de caractères, mais je ne sais pas ce que vous avez l'intention de faire avec ces informations.
Editar:
Puisque vous avez mis à jour la question, la réponse est plus simple.
string time = dateTime.ToString("yyyyMMddHHmmss");
Un entier de 32 bits n'est pas assez grand pour contenir une valeur DateTime avec une résolution très précise. Le site Tiques est un long (Int64). Si vous n'avez pas besoin de précision au niveau du tick, vous pouvez obtenir quelque chose comme les secondes depuis l'époque :
TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
int dateAsInteger = (int)t.TotalSeconds;
C'est généralement une mauvaise idée d'utiliser un type de données numérique pour stocker un nombre sur lequel vous ne pouvez pas faire d'arithmétique. Par exemple, le nombre dans votre exemple n'a aucune signification ou valeur numérique, l'ajouter ou le soustraire est inutile. En revanche, le nombre de secondes écoulées depuis une certaine date est utile comme type de données numériques.
Note : ce message a été posté avant que la question ne soit modifiée en "valeur de chaîne" plutôt qu'en "valeur entière".
En fait, il s'agit de décaler le numéro du nombre de places nécessaires pour chaque partie, puis de l'additionner :
var x = new DateTime(2010,06,26,14,47,07);
long i = x.Year;
i = i * 100 + x.Month;
i = i * 100 + x.Day;
i = i * 100 + x.Hour;
i = i * 100 + x.Minute;
i = i * 100 + x.Second;
Console.WriteLine(i); // 20100626144707
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.