所有时区都定义为与协调世界时(UTC) 的偏移量,范围从UTC−12:00到UTC+14:00。偏移量通常是整数小时,但少数区域会额外偏移 30 或 45 分钟,例如印度、南澳大利亚和尼泊尔。
- 整点的情况:
TimeZone tz = TimeZone.getTimeZone("UTC");
int offsetInMillis = (int) -(0.75*3600*1000); // UTC偏移量,毫秒
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = (offsetInMillis >= 0 ? "+" : "-") + offset;
System.out.println(offset);
输出:
-00:45
带分钟的情况:
TimeZone tz = TimeZone.getTimeZone("UTC");
int offsetInMillis = (8 * 3600 * 1000); // UTC偏移量,毫秒
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = (offsetInMillis >= 0 ? "+" : "-") + offset;
System.out.println(offset);
输出:
+08:00