import java.time.ZoneId;
import java.time.format.TextStyle;
import java.util.List;
import java.util.Locale;
import java.util.TreeSet;

public class MenjelajahZona {
    public static void main(String[] args) {
        List<String> semuaZona = List.copyOf(ZoneId.getAvailableZoneIds());
        System.out.println("jumlah zona tersedia : " + semuaZona.size());
        System.out.println("berisi Asia/Jakarta? : " + semuaZona.contains("Asia/Jakarta"));

        // Cetak hanya sebagian; urutkan agar keluarannya stabil dan mudah dibaca.
        TreeSet<String> terurut = new TreeSet<>(semuaZona);
        System.out.println("zona Asia/J*         : " + terurut.subSet("Asia/Ja", "Asia/Jk"));
        System.out.println("lima zona pertama    : " + terurut.stream().limit(5).toList());

        // Nama zona yang ramah untuk ditampilkan, per Locale.
        ZoneId jakarta = ZoneId.of("Asia/Jakarta");
        System.out.println("nama zona (id)       : " + jakarta.getDisplayName(TextStyle.FULL, Locale.forLanguageTag("id")));
        System.out.println("nama zona (en)       : " + jakarta.getDisplayName(TextStyle.FULL, Locale.US));
    }
}
