Java / Servlet: aktuelles sql.Date abrufen

7

Was ich tun muss, ist:

1) Holen Sie sich das Gebietsschema des Benutzers aus der Anfrage.

2) Erstellen Sie ein neues sql.Date-Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit basierend auf dem Gebietsschema des Benutzers

3) Schreiben Sie es in MySQL db, Spaltentyp: TIMESTAMP

Was ich habe ist:

%Vor%

Das Datum ist OK, aber es gibt ein Problem mit der Zeit - immer um 12:00:00.

Irgendwelche Vorschläge? Gibt es einen effizienteren Weg, dies zu tun?

    
Artemij 06.05.2009, 12:39
quelle

5 Antworten

17

Sogar eine kompaktere Lösung;)

%Vor%     
Hugh 22.03.2013 14:07
quelle
9

Es gibt eine weitere einfache Lösung dafür. Verwenden Sie diesen Code, um das aktuelle Datum mithilfe von java.util.Date

abzurufen %Vor%     
Aniruddh 22.12.2011 08:22
quelle
4

Wenn Sie Zeit haben wollen, brauchen Sie einen java.sql.Timestamp, kein java.sql.Date und eine timestamp-Spalte in der Datenbank.

    
Paul Tomblin 06.05.2009 12:42
quelle
0

Beachten Sie, dass request.getLocale das Tool verwendet Wert der Accept-Language-Überschrift und gibt möglicherweise nicht immer das richtige Gebietsschema.

    
kgiannakakis 06.05.2009 13:10
quelle
0

Das Abrufen der -Zeitzone basierend auf dem Gebietsschema ist möglicherweise nicht ihre tatsächliche Zeitzone .

Ein Beispiel: Hier in Australien ist das Gebietsschema "en-AU", aber wir haben ein paar Zeitzonen mit bis zu 3 Stunden Unterschied.

Ich denke, in den USA haben sie auch dieses Problem.

Eine mögliche Lösung besteht stattdessen darin, UTC-Zeit zu speichern. Wenn der Benutzer dann seine Zeitzone zum Beispiel in seinen Präferenzen einstellt oder eine andere Methode zum Übergeben der Zeitzone verwendet (Client / Browser-Information über AJAX), dann können Sie die UTC-Zeit basierend auf einer java.util.Calendar -Instanz anpassen .

    
Clinton 06.05.2009 14:27
quelle

Tags und Links