Détails
Comment puis-je convertir un timestamp Unix en DateTime et vice versa ?
Il y a cet exemple de code, mais ensuite il commence à parler de problèmes de millisecondes / nanosecondes.
La même question se trouve sur MSDN, [Seconds since the Unix epoch in C#][1].
Voici ce que j’ai obtenu jusqu’à présent :
public Double CreatedEpoch
{
get
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
TimeSpan span = (this.Created.ToLocalTime() - epoch);
return span.TotalSeconds;
}
set
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
this.Created = epoch.AddSeconds(value);
}
}
[1] : http://blogs.msdn.com/brada/archive/2004/03/20/93332.aspx
707
3
Voici ce dont vous avez besoin :
Ou, pour Java (ce qui est différent car l'horodatage est en millisecondes, pas en secondes) :
J'ai trouvé la bonne réponse en comparant simplement la conversion au 1/1/1970 sans l'ajustement de l'heure locale ;
Un tick Unix est de 1 seconde (si je me souviens bien), et un tick .NET est de 100 nanosecondes.
Si vous rencontrez des problèmes avec les nanosecondes, vous pouvez essayer d'utiliser AddTick(10000000 * valeur).