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)
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