Quelle est la meilleure façon en c # d'obtenir le même résultat de l'appel javascript date.gettime ()?

La méthode getTime () renvoie le nombre de millisecondes depuis minuit le 1er janvier 1970 et la date spécifiée.

18
Michael 15 nov. 2011 à 13:33

7 réponses

Meilleure réponse

Vous pouvez utiliser cette solution ...

  private Int64 GetTime()
  {
      Int64 retval=0;
      var  st=  new DateTime(1970,1,1);
      TimeSpan t= (DateTime.Now.ToUniversalTime()-st);
       retval= (Int64)(t.TotalMilliseconds+0.5);
      return retval;
  }
24
Enigma State 15 nov. 2011 à 09:59

Voici une méthode d'extension basée sur la réponse d'Enigma State

public static Int64 GetJavascriptTimeStamp(this DateTime dt)
{
    var nineteenseventy = new DateTime(1970, 1, 1);
    var timeElapsed = (dt.ToUniversalTime() - nineteenseventy);
    return (Int64)(timeElapsed.TotalMilliseconds + 0.5);
}

Pour l'utiliser pour l'heure actuelle:

var timeStamp = DateTime.Now.GetJavascriptTimeStamp();

0
Window 9 août 2018 à 20:05

L'implémentation correcte (en supposant l'heure actuelle) est la suivante:

DateTime utcNow = DateTime.UtcNow;
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long ts = (long)((utcNow - epoch).TotalMilliseconds);
1
Adaptabi 24 avril 2015 à 07:28
(DateTime.Now - new DateTime (1970, 1, 1)).TotalMilliseconds
2
Tim Rogers 15 nov. 2011 à 09:45

Étant donné que l'heure JavaScript est par rapport à l'UTC , je pense que vous aurez besoin de quelque chose comme ceci:

DateTime st=new DateTime(1970,1,1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan t= (DateTime.Now.ToUniversalTime()-st);
//t.TotalMilliseconds

Vous pouvez maintenant utiliser la propriété TotalMilliseconds de Timespan.

18
Adaptabi 4 mai 2015 à 11:28

Les méthodes Java et JavaScript Date.getTime () renvoient le nombre de millisecondes depuis le 1er janvier 1970 à 00:00:00 GMT.

Étant donné que .NET représente les dates en ticks (1 tick = 0,1 nanosecondes ou 0,0001 millisecondes) depuis le 1er janvier 0001 00:00:00 GMT, nous devons utiliser une formule de conversion où 621355968000000000 est le décalage entre les dates de base en ticks et 10000 le nombre de Tiques par milliseconde.

Ticks = (MilliSeconds * 10000) + 621355968000000000
MilliSeconds = (Ticks - 621355968000000000) / 10000
6
Royi Namir 15 nov. 2011 à 09:35

Je suppose que cela fera l'affaire :)

public double MilliTimeStamp(DateTime TheDate)
        {
            DateTime d1 = new DateTime(1970, 1, 1);
            DateTime d2 = TheDate.ToUniversalTime();
            TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);

            return ts.TotalMilliseconds;
        }
3
Issa Qandil 15 nov. 2011 à 09:38