I find you need much more brain power to understand your while loop. 

     for ( ZoneOffset offset : allZoneOffsets() ) 

Is self documenting. you even don't need to look up what this method does. But take it as a suggestion if you like.