在开发中涉及到修改系统时区的功能,会要求获取现在的时区,该怎么弄呢,现在把代码分享下
public String getCurrentTimeZone() {
TimeZone tz = TimeZone.getDefault();
return createGmtOffsetString(true, true, tz.getRawOffset());
}
public String createGmtOffsetString(boolean includeGmt, boolean includeMinuteSeparator, int offsetMillis) {
int offsetMinutes = offsetMillis / 60000;
char sign = '+';
if (offsetMinutes < 0) {
sign = '-';
offsetMinutes = -offsetMinutes;
}
StringBuilder builder = new StringBuilder(9);
if (includeGmt) {
builder.append("GMT");
}
builder.append(sign);
appendNumber(builder, 2, offsetMinutes / 60);
if (includeMinuteSeparator) {
builder.append(':');
}
appendNumber(builder, 2, offsetMinutes % 60);
return builder.toString();
}
private void appendNumber(StringBuilder builder, int count, int value) {
String string = Integer.toString(value);
for (int i = 0; i < count - string.length(); i++) {
builder.append('0');
}
builder.append(string);
}
TimeZone不能直接获取到 比如 GMT+8:00的时区 ,所以要进行一些换算