Stephen Colebourne wrote:
Unfortunately I don't run on Linux, so can't check this. I looked into this and found that on Fedora 30 x86-64, OpenJDK 12.0.1 mishandles not only *negative* DST specified via a POSIX TZ string, it also mishandles *positive* DST specified via a POSIX TZ string. On the other hand, this Java works fine with TZ='Europe/Dublin' even though Europe/Dublin has negative DST on my platform. See attached shell transcript. I am using OpenJDK 12.0.1 linux-x64 which I got from download.java.net.
So what I'm observing on this platform is: * Java supports negative DST when it comes from a TZif file. * Java does not support POSIX TZ strings that specify DST, regardless of whether the DST is positive or negative. Although this is just one Java platform, it appears that I may have been worrying overmuch about Java and tzdb's rearguard format, in the sense that the problem appears to have been fixed on Fedora without modifying the Java libraries themselves.