web-dev-qa-db-fra.com

Comment obtenir un horodatage correct en C #

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?

120
Wojciech Ketrzynski

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);
167
ekad
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
26
Mohamed.Abdo
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.

7
Jeff Li

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.

0
sachin