timedatectl und Java TimeZone

Gepostet in Cho Hisabi. Ich war so überrascht und irritiert.

Entdeckt bei der Migration eines von Java erstellten Systems von Amazon Linux zu Amazon Linux 2.

Führen Sie in Amazon Linux 2 den folgenden Befehl aus, um die Zeitzone des Systems festzulegen.

#timedatectl set-timezone "Asia/Tokyo"

Normalerweise sollte dies alles in Ordnung sein, und selbst wenn Sie im Internet suchen, wird nur Cocomade in Artikeln der Serien Amazon Linux 2 und CentOS 7 geschrieben.

TimeZone kann jedoch im Java-Programm nicht korrekt erfasst werden und wird zu UTC.

Stichprobe:

TimeZoneInfo.java


import java.util.Calendar;
class TimeZoneInfo {
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTimeZone());
    System.out.println(System.getProperty("user.timezone"));
  }
}

Ausführungsergebnis:

sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
UTC

Es gibt verschiedene Möglichkeiten, damit umzugehen. (Es hat lange gedauert, es zu finden)

  1. Setzen Sie die Umgebungsvariable TZ = Asia / Tokyo
  2. Fügen Sie der Java-Befehlszeile `` `-Duser.timezone = Asia / Tokyo``` hinzu
  3. Ändern Sie `` `/ etc / sysconfig / clock```, was in den Tagen von Amazon Linux die Standardeinstellungsmethode war.

etc. Ich denke, es gibt einige Probleme.

--timedatectl schreibt `/ etc / localtime``` neu, aber nicht` / etc / sysconfig / clock```. (Erstens scheint es in CentOS 7 selbst keine Datei zu geben ...)

Welches ist die korrekteste (oder sollte) Antwortmethode? .. .. .. Oder standardisieren Sie die Zeitzoneneinstellungen.

Recommended Posts

timedatectl und Java TimeZone
Java und JavaScript
XXE und Java
Getter und Setter (Java)
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
[Java] Verzweigen und Wiederholen
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Java] Überladen und überschreiben
Studiere Java # 2 (\ mark and operator)
Java Version 8 und neuere Funktionen
[Java] Unterschied zwischen == und gleich
[Java] Stapelbereich und statischer Bereich
[Java] Generics-Klasse und Generics-Methode
Java-Programmierung (Variablen und Daten)
Java-Ver- und Entschlüsselung PDF
Definition und Instanziierung von Java-Klassen
[Java] Über String und StringBuilder
[Java] HashCode und gleich Überschreibung
☾ Java / Repeat-Anweisung und Repeat-Steueranweisung
Java-Methoden und Methodenüberladungen
Java Generics T und? Unterschied
Vor- und Nachteile von Java
Java (bedingte Verzweigung und Wiederholung)
Über Java-Paket und Import
[Java] Laden Sie ein Bild hoch und konvertieren Sie es in Base64
C # und Java überschreiben Story
Java abstrakte Methoden und Klassen
Java während und für Anweisungen
Java-Kapselung und Getter und Setter
Informationen zu statischen und nicht statischen Java-Methoden
Ich habe PHP- und Java-Konstruktoren verglichen
Verwenden Sie Java mit MSYS und Cygwin
Verteilte Ablaufverfolgung mit OpenCensus und Java
[Java] Unterschied zwischen Hashmap und HashTable
Deklaration, Initialisierung und Typen von Java-Variablen
Java Excel Insertion und Bildextraktion
Installieren Sie Java und Tomcat mit Ansible
AWS SDK für Java 1.11.x und 2.x.
[Java] Grundtypen und Anweisungshinweise
Java-Veröffentlichungsdatum und EOL-Zusammenfassung
Über Biocontainer fastqc und Java
Java für Anfänger, Ausdrücke und Operatoren 1
Java Primer Series (Variationen und Typen)
Beispiel für Codierung und Decodierung in Java
[Java-Anfänger] Über Abstraktion und Schnittstelle
Grundlegende Datentypen und Referenztypen (Java)
[Java] Schleifenverarbeitung und Tabelle von neunundneunzig
Java-Argumente, Rückgabewerte und Überladungen
Java-Referenzmechanismus (Stack und Heap)
Verwenden Sie JDBC mit Java und Scala.
Java für Anfänger, Ausdrücke und Operatoren 2
Java 9 neue Funktionen und Beispielcode
[Java-Anfänger] == Operator und Gleiche Methode
[Java] Deklarieren und initialisieren Sie ein Array