天天看點

擷取目前指定時區的時間-基于Java8

基于Java8的實作:

String zone = "Asia/Shanghai";
ZoneId zoneId = ZoneId.of(zone);//擷取時區Id
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE.withZone(zoneId);//以1970-01-01的形式格式化時間
String formatStr = formatter.format(ZonedDateTime.now());//格式化目前的時間為字元串
           

支援的時區清單:

TreeSet<String> sortedZones = new TreeSet<>(ZoneId.getAvailableZoneIds());
System.out.println("Number of zones: " + sortedZones.size());
System.out.println("---------------");
for (String zone : sortedZones) {
    System.out.println(zone);
}
           

DateTimeFormatter支援的預置格式:

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html