我正在尝试将日历对象设置为 GMT,但 getTime() 始终返回 GMT+1 时间(我的当前时间)。我试过:
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("skeniver"));
他们显然都返回 GMT,因为
cal.getTimeZone().getDisplayName()
返回“GMT+00:00”;但是
cal.getTime().toString();
始终显示 GMT+1 时间。
有人知道为什么会这样吗?
最佳答案
您需要针对夏令时进行调整。我不确定这是否有帮助,但它是我用来在一个应用程序中将任何时区调整为 UTC 的代码,该应用程序目前正在被世界各地的许多人使用。我使用 Date
而不是 Calendar
但它有效...
Date dateTimeNow = new Date();
TimeZone tz = TimeZone.getDefault();
int currentOffsetFromUTC = tz.getRawOffset() + (tz.inDaylightTime(dateTimeNow) ? tz.getDSTSavings() : 0);
Date dateTimeNowUTC = new Date(dateTimeNow.getTime() - currentOffsetFromUTC);
关于android - 日历不返回 GMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7887260/