Es gibt einen Unterschied zwischen lokalen und die server-Zeit
In MVC4 C# - Anwendung, die ich verwendet DateTime.Now
als Objekt in meiner Anwendung. Nach der Implementierung war es +8 Stunden Unterschied zwischen dem lokalen computer und dem hosting. Dann habe ich es geändert DateTime.UtcNow
jetzt Differenz ist -4 Stunden.
Zum Beispiel in meinem computer-Datum ist 20 Mar 2013, 14:28:12
, aber Datum speichert Datenbank wie 20 Mar 2013, 10:28:12.
Was soll ich machen, alle user in allen Ländern zu nutzen 1 gleichen Datum?
Edit: meine Zeitzone ist (UTC+04:00) Baku, server ist folgende PST
- Dies ist eine für @JonSkeet, er liebt Datum Uhrzeit Fragen 🙂
- Hmm. Nicht der Typ, der fragt, ob es am Stromnetz angeschlossen ist, aber: Wird das Datum/Uhrzeit auf dem server richtig? Zumindest passt es zu den eine auf der box?
- AUCH: Welche Zeitzone der server und die Zeitzone sind Sie in?
- Hosting Arvixe, ich glaube nicht, dass ihrigen Zeit ist uncorrect
- Ich bin in Aserbaidschan, Zeitzone ist (UTC+04:00) Baku und der server ist Arvixe. Ich weiß jetzt aber nicht, dass Zeit-zone, genau. Ich wusste DateTime.Nun dauert immer server Datum/Uhrzeit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Sie uns zum Beispiel sagen, dass Ihre Benutzer in New York (GMT - 5) und Ihre server in Indien (UTC + 5:30).
Wenn der Benutzer sieht eine "lokale" Zeit 10:00 am (EST), Ihre server würden eine "lokale" Zeit von 7:30 Uhr (MEZ). Jedoch, durch die Verwendung der UTC in beiden Orten....die Benutzer sehen, eine UTC-Zeit von 3 Uhr und die server sehen würde, eine UTC-Zeit von 3 Uhr.
Verwendung der UTC in allen Orten, sondern halten eine referece der Benutzer die Zeitzone ermöglicht es Ihnen, immer in UTC, aber dennoch konvertieren die Zeiten, in der die Benutzer, die "lokale" Zeit, wenn Sie wollen, zeigen Sie es Ihnen.
Du auch nicht darauf verlassen können, wo ein server gehostet especically wenn es ein virtueller server. Noch können Sie davon ausgehen, auf welche Zeitzone die hosting-Unternehmen, Ihre Server zu. Am besten immer code defensivly mithilfe
DateTime.UtcNow
beim speichern das Datum mal in der Datenbank.Zur Konvertierung der UTC-Zeit zurück, um die Zeitzone eines Benutzers müssen Sie Folgendes tun:
FYI, können Sie finden eine Liste der Zeitzonen aus:
Diese sollten ausgedruckt:
Wie Sie sehen können, die Sie benötigen, zu wissen, die Benutzer-Zeitzone. Es gibt 2 Möglichkeiten, um zu wissen, die Benutzer-Zeit:
Ich würde vorschlagen, die erste option gibt als die zweite kann die Dinge schwieriger für die Menschen. Zum Beispiel, wenn Sie in Großbritannien basieren und Fliegen in die USA für die Woche. Alles wird sich ändern-Zonen, und Sie können nicht erkennen!
wenn ich auf Arbeit ein Projekt von internationalen Nutzern würden wir immer verwenden
DateTime.UtcNow
wenn es ein lokales Projekt - ie ist nur für Verwendungen in der Zeitzone dann
DateTime.Now
ausreichend sein wird.Ihrer lokalen Zeit-ist deine system-Zeit. Überprüfen Sie die Zeitzone auf Ihrem Betriebssystem.
Die server-Zeit, auf die Sie sich beziehen, ist gemäß der Zeitzone in Ihren server-Konfigurations-Dateien.
Stellen Sie sicher, dass Betriebssystem-Zeitzone und die server-Zeitzone ähnlich.