Hvordan kan jeg konvertere et Unix-tidsstempel til DateTime og omvendt?
Det er denne eksempelkoden, men så begynner den å snakke om millisekund / nanosekundproblemer.
Det samme spørsmålet er på MSDN, Sekunder siden Unix-epoken i C#.
Dette er hva jeg har så langt:
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);
}
}
707
3
Her er det du trenger:
Eller, for Java (som er annerledes fordi tidsstempelet er i millisekunder, ikke sekunder):
Jeg fant det riktige svaret bare ved å sammenligne omregningen til 1/1/1970 uten lokal tidsjustering;
Et Unix-tick er 1 sekund (hvis jeg husker riktig), og et .NET-tick er 100 nanosekunder.
Hvis du har hatt problemer med nanosekunder, kan du prøve å bruke AddTick(10000000 * verdi).