code: private void doGetTimeZones() throws PageException {
  
  	String strLocale = getString("locale", "english (united kingdom)");
  	Locale locale = LocaleFactory.getLocale(strLocale);
  
  	String[] timeZones = TimeZone.getAvailableIDs();
  	lucee.runtime.type.Query qry = new QueryImpl(new String[] { "id", "display" }, new String[] { "varchar", "varchar" }, timeZones.length, "timezones");
  	Arrays.sort(timeZones);
  	TimeZone timeZone;
  	for (int i = 0; i < timeZones.length; i++) {
  	    timeZone = TimeZone.getTimeZone(timeZones[i]);
  	    qry.setAt("id", i + 1, timeZones[i]);
  	    qry.setAt("display", i + 1, timeZone.getDisplayName(locale));
  
  	}
  	pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
      }
docs: @throws PageException