90 votes

Équivalent de Java System.currentTimeMillis() en C#

Quel est l'équivalent de la méthode Java System.currentTimeMillis() en C# ?

97voto

Jon Skeet Points 692016

Une alternative :

private static readonly DateTime Jan1st1970 = new DateTime
    (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

public static long CurrentTimeMillis()
{
    return (long) (DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
}

78voto

Barend Points 8232

Un idiome commun en Java est d'utiliser la fonction currentTimeMillis() à des fins de chronométrage ou d'ordonnancement, où vous n'êtes pas intéressé par les millisecondes réelles depuis 1970, mais où vous calculez plutôt une valeur relative et comparez les invocations ultérieures de la fonction currentTimeMillis() à cette valeur.

Si c'est ce que vous cherchez, l'équivalent en C# est Environment.TickCount .

14voto

bstabile Points 91

Si vous vous intéressez au chronométrage, ajoutez une référence à System.Diagnostics et utilisez un chronomètre.

Par exemple :

var sw = Stopwatch.StartNew();
...
var elapsedStage1 = sw.ElapsedMilliseconds;
...
var elapsedStage2 = sw.ElapsedMilliseconds;
...
sw.Stop();

13voto

Ramunas Points 36
DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()

7voto

Hath Points 5505

Le site System.currentTimeMillis() en java renvoie l'heure actuelle en millisecondes à partir du 1/1/1970

c# qui serait

public static double GetCurrentMilli()
    {
        DateTime Jan1970 = new DateTime(1970, 1, 1, 0, 0,0,DateTimeKind.Utc);
        TimeSpan javaSpan = DateTime.UtcNow - Jan1970;
        return javaSpan.TotalMilliseconds;
    }

edit : made it utc as suggested :)

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