直接上代码:
//获取手机当前时区时间,单位毫秒
public static long getTimeZoneMillis() {
int[] timeZoneArray = splitTimeZone();
int timeZone = timeZoneArray[0] * 60 + timeZoneArray[1];
return timeZone * 60 * 1000;
}
private static int[] splitTimeZone() {
int[] result = {0, 0};
Locale defaulLocal = Locale.getDefault();
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
defaulLocal);
Date currentLocalTime = calendar.getTime();
DateFormat date = new SimpleDateFormat("Z", defaulLocal);
String localTime = date.format(currentLocalTime);
if (!TextUtils.isEmpty(localTime)) {
localTime = localTime.toLowerCase(defaulLocal);
int start_add = localTime.indexOf("+");
int start_subtract = localTime.indexOf("-");
if (start_add >= 0) {
String _short_time = localTime.substring(start_add + 1);
if (_short_time.length() >= 2) {
result[0] = Integer.parseInt(_short_time.substring(0, 2));
}
if (_short_time.length() >= 4) {
int startMH = _short_time.indexOf(":");
if (startMH >= 0) {
result[1] = Integer.parseInt(_short_time.substring(
startMH + 1, 5));
} else {
result[1] = Integer.parseInt(_short_time
.substring(2, 4));
}
}
} else if (start_subtract >= 0) {
String _short_time = localTime.substring(start_subtract + 1);
if (_short_time.length() >= 2) {
result[0] = Integer.parseInt(_short_time.substring(0, 2)) * -1;
}
if (_short_time.length() >= 4) {
result[1] = Integer.parseInt(_short_time.substring(2, 4)) * -1;
}
}
}
return result;
}