2016-05-19 17 views
0

Ich muss ein Datum formatieren und es Benutzern basierend auf Benutzer Standort anzeigen.Format Datum Zeit in gwt mit Zeitzone

Ich versuche, die Zeit zu formatieren, mit dem folgenden Code

DateTimeFormat.getFormat("h:mm a z").format(new Date(timeInMillis)) 

Dies ist das Ergebnis bin ich „05.18 UTC-4“ für new york Benutzer und „2.18 bekommen UTC- 7 "für Seattle Benutzer. Wie erzeuge ich String wie "5:18 PM EST" für New York Benutzer und "2:18 PM PDT" für Seattle Benutzer?

Hinweis: Das Problem bei der Verwendung von Format (neues Datum (Zeit), Zeitzone) ist, dass ein Zeitzone-Objekt basierend auf Benutzergebietsschema erstellen? Timezone.createTimeZone (int) gibt eine SimpleTimeZone-Implementierung, die "UTC-4" erzeugt, um "PDT" zu erzeugen, muss die Zeitzone mit Timezone.createTimeZone (timezoneJson: string) erstellt werden, aber das Problem ist, dass wir müssen Wählen Sie die Zeitzone zum Zeitpunkt der Kompilierung, um den JSON-String für die Eingabezeitzone zu erstellen.

Vielen Dank im Voraus

Antwort

1

Sie benötigen ein TimeZone object an den Formatierer weitergeben müssen:

format.format(new Date(), timeZone)); 

Beachten Sie, dass der beste Weg, Time-Zone zu schaffen, ist aus einer JSON-Zeichenfolge, die Informationen über Änderungen an Zeitzone enthält in die Vergangenheit. Wenn Ihre App in der Vergangenheit nicht mit der Zeit zu tun hat, ist dies möglicherweise nicht notwendig.

+0

Bedenken Sie, dass GWT alle aktuellen Zeitzonendaten enthält - Sie können 'GWT.create' eine Instanz von' com.google.gwt.i18n.client.constants.TimeZoneConstants' und Holen Sie sie alle mit Namen, oder wählen Sie einfach die spezifischen, die Sie wollen. Warnung - einschließlich aller möglichen Zeitzonen wird Ihre App dramatisch aufblähen, weshalb Java's eigene TimeZone nicht im Kern-GWT emuliert wird. –

+0

aber die Frage ist, wie erstellen Sie TimeZone-Objekt für Benutzer in verschiedenen Zeitzonen? – Mahes

+0

Fragen Sie sie nach der gewünschten Zeitzone und erstellen Sie Zeitzonenobjekte entsprechend. Normalerweise geschieht dies in den Einstellungen oder Einstellungen für Ihre App. Sie können auch eine Standardzeitzone festlegen, in der sich die meisten Benutzer befinden, damit diese Benutzer ihre Einstellungen nicht ändern müssen. Schließlich können Sie einfach die Zeit in Ihrer Standardzeitzone anzeigen, sicherstellen, dass Sie angeben, um welche Zeitzone es sich handelt, und die Benutzer selbst herausfinden lassen. Dies ist, was viele Websites tun, wie ESPN. Sie sagen, das Spiel beginnt um 20 Uhr ET und die Benutzer wissen, wie viel Zeit das für ihre eigene Zeitzone bedeutet. –