android - 日历不返回 GMT

标签 android calendar gmt

我正在尝试将日历对象设置为 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/

相关文章:

android - 在 Android 中使用 fragment 时处理后退

javascript - jQuery CLNDR : add div within date block

GMT/UTC 的 Javascript 倒计时器

python - 如何将 EST/EDT 转换为 GMT?

java - 阅读日历日期

ios - 快速转换时区之间的日期

android - 创建新 Activity 最有效的方法是什么

android - 亚行 : error: remote object '/data/data/com.me.myproject' does not exist

c# - 如何删除xamarin形式的操作栏?

c# - 在日历日打开文本框单击