与Android中的 GMT 相比,我需要获得移动 TimeZone 。我只能看到一个函数返回但是String
:
Calendar c = Calendar.getInstance();
TimeZone tz = c.getTimeZone();
tz.getID();
这是getID()
:
返回此TimeZone的ID,例如America / Los_Angeles,GMT-08:00或UTC。
问题是我需要将Integer
视为+ 3,-5 ......
答案 0 :(得分:4)
您应该能够根据TimeZone getOffset()
值计算差异,请参阅http://developer.android.com/reference/java/util/TimeZone.html#getOffset(long)
答案 1 :(得分:4)
public static String getCurrentTimezoneOffset() {
TimeZone tz = TimeZone.getDefault();
Calendar cal = GregorianCalendar.getInstance(tz);
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = (offsetInMillis >= 0 ? "+" : "-") + offset;
return offset;
}
答案 2 :(得分:1)
使用TimeZone.getOffset。请注意,由于夏令时,时差可能会发生变化,并且每个国家/地区和一年中的时间可能会有很大差异。因此,您不应该全年依赖该抵消数字。相反,使用TimeZone标识符更可靠。