ZonedDateTime类可以满足我们的需求。
其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式
例如 :Asia/Shanghai 等now():使用系统时间获取当前的ZonedDateTime now(ZoneId zone):返回指定时区的ZonedDateTime
ZoneId:该类中包含了所有的时区信息getAvailableZoneIds() : 静态方法,可以获取所有时区时区信息 of(String id) :静态方法,
用指定的时区信息获取 ZoneId 对象
import java.text.ParseException;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.HashMap;
import java.util.Map;
public class Test {
Map<String, String> map = new HashMap<>(64);
// 参考 https://www.kancloud.cn/java-jdxia/java/648651
// map.put("ACT", "Australia/Darwin");
// map.put("AET", "Australia/Sydney");
// map.put("AGT", "America/Argentina/Buenos_Aires");
// map.put("ART", "Africa/Cairo");
// map.put("AST", "America/Anchorage");
// map.put("BET", "America/Sao_Paulo");
// map.put("BST", "Asia/Dhaka");
// map.put("CAT", "Africa/Harare");
// map.put("CNT", "America/St_Johns");
// map.put("CST", "America/Chicago");
// map.put("CTT", "Asia/Shanghai");
// map.put("EAT", "Africa/Addis_Ababa");
// map.put("ECT", "Europe/Paris");
// map.put("IET", "America/Indiana/Indianapolis");
// map.put("IST", "Asia/Kolkata");
// map.put("JST", "Asia/Tokyo");
// map.put("MIT", "Pacific/Apia");
// map.put("NET", "Asia/Yerevan");
// map.put("NST", "Pacific/Auckland");
// map.put("PLT", "Asia/Karachi");
// map.put("PNT", "America/Phoenix");
// map.put("PRT", "America/Puerto_Rico");
// map.put("PST", "America/Los_Angeles");
// map.put("SST", "Pacific/Guadalcanal");
// map.put("VST", "Asia/Ho_Chi_Minh");
// map.put("EST", "-05:00");
// map.put("MST", "-07:00");
// map.put("HST", "-10:00");
public static void main(String[] args) throws ParseException {
//获取本时区的ZonedDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
//获取指定时区的ZonedDateTime
ZonedDateTime zonedDateTime1 = ZonedDateTime.now(ZoneId.of("Australia/Darwin"));
System.out.println(zonedDateTime1);
}
}