2016-05-27 5 views
0

Ich habe Code, der icalender Ereignisse einschließlich Zeitzone Definition für Sommerzeit generiert.Wie teste ich, ob icalendar Sommerzeit funktioniert?

Zeitzone für MEZ/MESZ wird auf diese Weise definiert:

BEGIN:VTIMEZONE 
TZID:Europe/Prague 
BEGIN:DAYLIGHT 
TZOFFSETFROM:+0100 
TZOFFSETTO:+0200 
TZNAME:CEST 
DTSTART:20160327T020000 
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 
END:DAYLIGHT 
BEGIN:STANDARD 
TZOFFSETFROM:+0200 
TZOFFSETTO:+0100 
TZNAME:CET 
DTSTART:20161030T030000 
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 
END:STANDARD 
END:VTIMEZONE 

Obwohl ich glaube, dass diese Zeitzone Definition korrekt ist und Ereignisse während STANDARD Zeitversatz korrigieren haben (funktioniert mit CEST fein so weit), was kann Ich mache es, um sicher zu sein.

Ich kann Uhr manuell auf 30. 10. 2016 3:00 Uhr, aber auf diese Weise kann ich nicht die 3:00 -> 2:00 Offset-Übergang, der automatisch passieren wird (wegen NTP), weil ich simulieren Dann müßte ich die Uhr manuell eine Stunde zurückstellen, was mich wohl in der Stunde vor der Sommerzeitänderung zurückbringen wird.

Gibt es eine Möglichkeit, Zeit mit eigenen NTP-Server zu verspielen oder OS (Linux in diesem Fall) zu zwingen, den Zeitversatz zu ändern? Oder einen anderen Trick, um Zeitversatzänderungen zu simulieren?

Antwort

0

Ok, irgendwann habe ich es selbst herausgefunden.

Für in Benutzersitzung gestartete Programme sollte ausreichen, um USER Zeitzone (zum Beispiel im KDE-Zeit-Applet) einzustellen. Aber im Fall von Lightning-Kalender in Thunderbird müssen Sie die Zeitzone in den eigenen Einstellungen von Lightning festlegen. Und vergessen Sie nicht, das Ligtning-Fenster zu schließen und es erneut zu öffnen, um die Änderung zu übernehmen.

Für Prozesse außerhalb der Benutzersitzung nehme ich an, dass Sie die systemweite Zeitzone ändern müssen.

Und dann Datum vor/zurück zu der Zeit, die Sie testen möchten.