在格林尼治标准时间上午9点设置警报



我遇到了一个奇怪的问题。我需要设置一个任务在格林尼治标准时间上午9点运行。以下是我正在使用的代码:

AlarmManager mgr = (AlarmManager) context
            .getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance(TimeZone
                    .getTimeZone("GMT"));
            calendar.setTimeInMillis(System.currentTimeMillis());
            calendar.set(Calendar.HOUR, 9);
            calendar.set(Calendar.MINUTE, 0);
            mgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);

我的时区是GMT+2。作为一项测试,我试图在这个时候设置警报:

Alarm time = My time - 2 hours + couple of minutes to catch the alarm

但它从未奏效。我是不是错过了什么?提前谢谢。

这可能是问题所在:

calendar.set(Calendar.HOUR, 9);

这就是设置"上午或下午的时间"——如果你已经在下午,它会将其设置为晚上9点。我想你想要:

calendar.set(Calendar.HOUR_OF_DAY, 9);

这可能不能解释你的问题,但这肯定是需要解决的问题。请注意,它将在同一天——所以如果你在上午9点之后这样做,它就不会着火。

(您可能也应该将秒字段设置为0。)

相关内容

  • 没有找到相关文章

最新更新