Does a running JVM detect a change to the computer's timezone? : <p>I can't find any specific docs to answer this question. </p>

<p>I wrote some simple test code to work out what actually happens on Java 1.8 on OS X 10.12:</p>

<pre><code>public static void main(String[] _args) throws InterruptedException {
    while (true) {
        int calendarTimezoneOffset = Calendar.getInstance().get(Calendar.ZONE_OFFSET);
        System.out.println("calendarTimezoneOffset = " + calendarTimezoneOffset);

        ZoneOffset offset = ZonedDateTime.now().getOffset();
        System.out.println("offset = " + offset);

        Thread.sleep(1000);
    }
}
</code></pre>

<p>Both the old way (Calendar) and the new way (Java 8's Date and Time library) do not detect any change I make to the OS's timezone while the JVM is running. I need to stop and start the code to get the changed timezone.</p>

<p>Is this by design? Is this reliable behaviour across JVM implementations and operating systems?</p>
