Ausführen von Webapp auf einem Mac in UTC (entweder Ändern der MacBook-Zeitzone oder der Tomcat-Zeitzone)

1154
Andy A

Um meine Web-App auszuführen, muss ich auf meinem MacBook meine Zeitzone auf UTC einstellen. Ich kann dies vorübergehend tun, indem ich eine Konsole öffne und betrete

sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime 

Meine Zeitzone wird jedoch wieder normal, wenn ich meinen Rechner neu starte!

Irgendein Rat?

Edit : Die Antwort auf diese Frage von 'Celada' impliziert, dass ich meinen Server einfach UTC machen kann. Ich verwende Apache Tomcat 7. Wie kann ich es zusätzlich zu Celadas Antwort auf UTC setzen?

Update - 3. April : Nach Celadas Antwort habe ich versucht, SetEnv TZ UTCam Anfang von startup.sh hinzuzufügen. Das schien keinen Unterschied zu machen. Nach einigen Nachforschungen habe ich versucht export JAVA_OPTS="-Duser.timezone=UTC", startup.sh hinzuzufügen, aber auch dies hatte keine Auswirkungen. Füge ich der richtigen Datei den richtigen Befehl hinzu?

2

3 Antworten auf die Frage

1
Celada

Ich gehe davon aus, dass wenn Sie das Kontrollfeld verwenden würden, um die Zeitzone zu ändern, Ihre Änderung nicht bei jedem Neustart verringert würde.

Wenn Sie befürchten, dass die Zeitzone bei jedem Neustart zurückgesetzt wird, klingt das so, als wollten Sie die Änderung dauerhaft und nicht temporär vornehmen. Warum verwenden Sie dann nicht einfach die Systemsteuerung?

Wenn diese Änderung nur für Ihre Web-App gilt, warum ändern Sie die Zeitzone nicht nur für den Webserver und nicht global auf dem Computer? Dies sollte so einfach sein wie das Hinzufügen

SetEnv TZ UTC 

bis zum ende von /etc/apache2/httpd.conf.

Wenn dies nicht funktioniert, kann dies daran liegen, dass die TZVariable vor dem Start von Apache festgelegt werden muss, anstatt von Apache festgelegt zu werden. In diesem Fall ist das Folgende etwas komplizierter, funktioniert aber auf jeden Fall:

  1. Bearbeiten /System/Library/LaunchDaemons/org.apache.httpd.plist

    Fügen Sie die Zeilen hinzu

    <key>EnvironmentVariables</key> <dict> <key>TZ</key> <string>UTC</string> </dict> 

    kurz vor der Zeile, die </dict>in der Nähe des unteren Bereichs angezeigt wird

  2. Laden Sie diese Konfig erneut

    launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist 

All dies muss als root erledigt werden.

Hallo Celada, danke für deine Antwort. Was meinen Sie mit "Systemsteuerung"? Ich bin auf einem Mac, nicht auf Windows. Ich habe unter "Datum & Uhrzeit" in den Systemeinstellungen eine Zeitzonenoption gefunden, jedoch keine Option für UTC. vor 12 Jahren 0
Nicht "Systemsteuerung"? Der Fachbegriff für die einzelnen Elemente dort war früher „CDev“, aber ich denke, dieser Begriff könnte überholt sein. Was ich damit meine, ist, wie sie es heutzutage nennen. Entschuldigung, ich bin jetzt nicht vor meinem MacBook (es ist zu Hause), also kann ich nicht nachsehen. Ich bin jedenfalls überrascht, dass es keine UTC- oder UTC-äquivalente Zeitzone gibt, die Sie von dort aus einstellen können. Wenn Sie keine finden können, probieren Sie stattdessen die Apache `SetEnv`-Lösung aus. vor 12 Jahren 0
Ich versuche die Apache-Idee. Ich suche zurzeit nach der Datei, der ich diese hinzufügen muss. ... (wenn Sie mich führen können, tun Sie dies bitte) vor 12 Jahren 0
Mhm, ja, ich bin damit unerfahren. Zu welcher Datei füge ich die Zeile hinzu? Ist es eine der Dateien im Ordner conf in meinem Apache-Tomcat-7.0.26-Ordner? (Das ist eine vollständige Vermutung) vor 12 Jahren 0
Ich habe die Frage mit weiteren Informationen zum Festlegen einer Umgebungsvariablen für Apache aktualisiert. Ich sehe jedoch in Ihrem letzten Kommentar, dass Sie möglicherweise nicht den von Apple gelieferten Standard-Apache verwenden, sondern eher Tomcat. Wenn ja, müssen Sie die conf-Datei (für die `SetEnv`-Version) oder das Startskript (für die` launchctl`-Version) entsprechend * dem * Webserver bearbeiten. Ich bin nicht sicher, welche Dateien für Sie bestimmt sind, da ich nicht weiß, wo und wie Ihre Katerinstallation durchgeführt wird. Aber ich hoffe, Sie können die analogen Dateien finden. vor 12 Jahren 0
Ich sehe noch keine Datei mit dem Namen conf, aber ehrlich gesagt weiß ich nicht, was ich mache! Aus irgendeinem Grund ist die Datei 'startup.sh' relevant? vor 12 Jahren 0
Es sieht in der Tat relevant aus. Vielleicht verwendet Tomcat dies anstelle des Standard-MacOS-Startprogramms, um sich selbst zu starten. Sie können `TZ = UTC; Exportiere TZ` oben in dieser Datei unter der `#! / bin / sh`-Zeile und starte Tomcat neu. Ich wette, das wird funktionieren. vor 12 Jahren 0
Danke für den Tipp Celeda, aber es hat nicht funktioniert. Jetzt versuchen wir jedoch, die Zeitzone von Tomcat anstelle meines Mac zu ändern. Ich frage mich, ob es sich um eine neue Frage handelt, die gestellt werden muss (lässt diese Frage offen, ob ich meinen MAC dauerhaft in UTC machen möchte). Andy A vor 12 Jahren 0
Danke für Ihre Hilfe, Celeda. Ich habe das jetzt sortiert. Ich würde Ihnen +1 für Ihren Rat geben, aber da diese Frage von StackOverflow zu SuperUser verschoben wurde, habe ich nicht genug Punkte, um Sie zu +1. Andy A vor 12 Jahren 0
Es ist ein Jahr später, und ich habe Sie verdient, wie verdient! Andy A vor 11 Jahren 0
0
lupincho

Wenn der symbolische Link funktioniert, können Sie diesen symbolischen Link beim Start erneut erstellen. Siehe Erstellen von Startaufträgen

0
Andy A

Bingo. Ich habe es geschafft, meine Tomcat-Zeitzone auf UTC einzustellen. In bin / catalina.sh habe ich hinzugefügtCATALINA_OPTS=-Duser.timezone=UTC