C# : DateTime in UnixTime umwandeln

Gast #5813600
Lesenswert?

1
$ date +%s
2
1555601071
3
$ date
4
Thu 18 Apr 17:25:28 CEST 2019
5
$ date +%s
6
1555601130
1
DateTime tim=DateTime.Now;
2
TimeSpan span = (tim - new DateTime(1970,1,1, 0,0,0,0,DateTimeKind.Utc));
3
long unixTime = (long)span.TotalSeconds;
4
-> 1555608132

Das C#-Programm und date-Befehle waren auf dem gleichen Rechner  zu 
ähnlicher Zeit.
Irgendwas stimmt da nicht, die beiden Zeiten unterscheiden sich um 7200 
Sekunden.

Was ist da falsch?
Gast #5813610
Lesenswert?

in dem DateTime.Now ist Sommerzeit/Zeitzone schon berücksichtigt.

Wenn ich statt DateTime.Now DateTime.UtcNow nehme, dann stimmt es, aber 
warum?

Utc ist ja nur eine Darstellung der Universellen Zeit.
Gast #5813622
Lesenswert?

Bastler schrieb:
> Irgendwas stimmt da nicht, die beiden Zeiten unterscheiden sich um 7200
> Sekunden.

Auf die unterschiedliche Zeitzone wurde ja schon verwiesen.

Generell war es bei Windows C Compilern wohl so, dass die 'epoch 0'-Zeit 
von der Laune und dem Ort des Programmierers abhing. Ich hatte in 30 
Jahren ca. 6 defines fuer die richtige Zeit - also immer Vorsicht.

leo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren