J'aimerais avoir un horodatage valide dans mon application et j'ai donc écrit:
public static String GetTimestamp(DateTime value)
{
return value.ToString("yyyyMMddHHmmssffff");
}
// ...later on in the code
String timeStamp = GetTimestamp(new DateTime());
Console.WriteLine(timeStamp);
sortie:
000101010000000000
Je voulais quelque chose comme:
20140112180244
Qu'est ce que j'ai mal fait?
Votre erreur utilise new DateTime()
, qui renvoie le 1er janvier 0001 à 00: 00: 00.000 au lieu de la date et de l’heure actuelles. La syntaxe correcte pour obtenir la date et l'heure actuelles est DateTime.Now , changez donc ceci:
String timeStamp = GetTimestamp(new DateTime());
pour ça:
String timeStamp = GetTimestamp(DateTime.Now);
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
var timestamp = DateTime.Now.ToFileTime();
Cette réponse n’est pas "meilleure" en soi, mais c’est une réponse alternative qui donne des résultats similaires à ceux déjà fournis, tout en étant moins prolixe. Même s'il ne s'agit pas d'un temps Unix, Windows filetime peut toujours être utilisé pour identifier des transactions distinctes.
Int32 unixTimestamp = (Int32) (DateTime.UtcNow.Subtract (new DateTime (1970, 1, 1))). TotalSeconds;
DateTime.UtcNow peut être remplacé par tout objet DateTime pour lequel vous souhaitez obtenir l'horodatage Unix.