Frage

Die Internationalisierung Probleme mit String-Handling verbunden sind ziemlich kann durch Anschluss an die Beratung gelöst werden. Unicode verwenden und speichern alles als UTF-8 in Ihrer Datenbank, dann werden Sie in der Lage sein, Kunden zu bedienen Sprachen der Welt mit all

Aber was ist mit den Internationalisierungsproblemen im Zusammenhang mit Datum / Zeit-Handling?

Fragen:

  • Gibt es ähnliche leicht folgen Best Practices zur Lösung der Internationalisierung Probleme Umgang mit Umgebungs Zeit?
  • Wie stellen Sie sicher, dass Ihre Anwendungen Kunden, die in verschiedenen Zeitzonen dienen können? Welche Probleme haben Sie begegnen und wie hast du sie lösen?
War es hilfreich?

Lösung

Ich habe folgende Hinweise,

  1. Speichern Sie alle Ihre Zeit in der Datenbank mit einer Zeitzone, vorzugsweise Zulu (GMT).
  2. Weisen Sie eine Zeitzone für jeden Benutzer bei der Registrierung. Wir rechnen normalerweise diese aus der Sprache der Registrierungsseite oder den eingebetteten Code in dem Promotion-Link. Manchmal müssen wir Benutzer fragen.
  3. Erstellen Kunden Zeitzone-aware. Dies bedeutet, Client keine Zeit vom Server anzeigen kann, wie ist. Muss in der lokalen Zeitzone und in lokalem Format angezeigt werden.
  4. Client sollte einige Mühe machen Zeitzone Info des Systems zu erhalten. Wenn nicht, können Server aus verschiedenen Daten erraten. Wir haben gute Ergebnisse mit Sprache zuerst, dann die IP-Adresse. In jedem Fall muss Clientzeit mit Zone Info angezeigt werden, so Benutzer weiß, was los ist, wenn die Zeit ist falsch.
  5. Sie benötigen spezielle Flags für bestimmte Zeitwerte, die nicht von Zeitzone betroffen ist. Wir hatten einen Fehler, dass die Benutzer Geburtstag ändert sich, wenn sie ihre locale ändern. Andere Dinge zu dieser Kategorie gehören, auch an Feiertagen, Öffnungszeiten etc.
  6. Wenn Sie mit dem Server synchronisieren Uhr, bitte nicht die Systemzeit ändern, speichert nur das Delta in Ihrem Client. Wir hatten eine Sicherheitsanforderung, dass die Uhr synchron mit dem Host sein muss. So ist unser Client synchronisiert Systemuhr mit unserem Server beim Start. Das ist die falsche Sache zu tun. Für ältere Systeme wie Windows 95 ohne Zeitzone, änderten wir die Zeit in GMT. Schließlich werden die älteren Kunden gingen weg, aber wir sind ein neues Problem konfrontiert ist, dass wir, um die genaue Zeit von NTP messed.

Hoffnung einige unserer Fehler, die Sie wird dazu beitragen, sie zu vermeiden.

Andere Tipps

ZZCoder hat einige gute Punkte. Hier sind einige weitere:

  • Alle Datums- und Uhrzeitwerte müssen eine zugeordnete Zeitzone. Sie sollten definieren, was es bedeutet, wenn ein Datetime nicht über einen einzigen (zum Beispiel in einigen Fällen wird es bedeuten, GMT + 0, in anderen ist es, weil der Code in der Mitte ist es herauszufinden, und Zuweisen einer).
  • Sie werden wahrscheinlich brauchen Ereignisse an einen Ort mit einem Datetime befestigen. Dies bedeutet, dass Sie einen Weg herauszufinden, haben wird, wenn eine Zeitzone des Datumzeit darf sich ändern. Dies löst das Problem der Geburtstage bewegen, sondern erlaubt es auch intelligentes Verhalten bei Sommerzeit beginnt oder endet. Achten Sie jedoch darauf ungewollter Beziehungen. Ein Treffen für mehrere Personen in verschiedenen Zeitzonen einrichten sollte man kanonischen Eintrag verweisen, nicht Datetimes kopieren und lokalisieren sie
  • nicht zu tun Berechnungen selbst. Immer immer immer stellt die Bibliotheksfunktionen Datumzeit Berechnungen zu tun

würde ich hatte etwas Glück mit diesem durch einige JavaScript mit der Client melden Sie uns ihre Zeitzone haben. Wenn ich mich daran beteiligt auf den Computer des Benutzers in der lokalen Zeit, um die aktuelle Zeit zu berechnen und dann, dass gegen Zulu verglichen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top