3 Stimmen

Das Datum in Java auf Centos OS zu erhalten, ist nicht korrekt?

Grüße alle ich habe eine j2ee App mit Spring Framework und beim Debuggen auf dem Online-Server (CentOS-Betriebssystem) Wenn ich versuche, das Datum in der App zu bekommen, indem ich den Wert des new Date();-Objekts ausgebe ruft es die Zeit in GMT-6 ab, obwohl, wenn ich die Serverzeit über das Terminal abrufe Befehl Datum wird es in GMT-Zeit abgerufen, die echte Zeit, also frage ich mich, woher kommt das GMT-6, warum tritt ein so seltsames Verhalten auf?

1voto

darioo Punkte 45156

Dies klingt für mich wie ein Lokalitätsproblem. Genauer gesagt ist es kein Problem, es ist einfach die Art und Weise, wie Java mit unterschiedlichen Zeitzone-/Lokalitätseinstellungen umgeht.

Unter Verwendung des Codes aus diesem Artikel:

Properties p = System.getProperties();
Enumeration keys = p.keys();
while (keys.hasMoreElements()) {
  String key = (String)keys.nextElement();
  String value = (String)p.get(key);
  System.out.println(key + ": " + value);
}

kannst du sehen, wie Java deine Umgebung interpretiert.

Wenn du die Zeitzone-/Lokalitätseinstellungen von CentOS änderst, sollte Java diese Änderung erkennen und die Zeit entsprechend anzeigen.

Das klingt jedoch nach einem übertriebenen Aufwand und die Anpassung des Datumsformats basierend auf der Lokalität ist möglicherweise das, was du brauchst.

Verschiedene Anwendungen können dasselbe Datum unterschiedlich ausgeben.

0voto

matt b Punkte 135206

Vielleicht wird in Ihrer Anwendung irgendwo die Standard-Zeitzone mit TimeZone.setDefault(..) geändert?

0voto

Mahmoud Saleh Punkte 32597

Das Problem ist nach dem Neustart des Apache und Tomcat gelöst... aber ich weiß immer noch nicht, warum ein solches Verhalten auftritt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X