0

我在我的应用程序中使用日历作为闹钟,但如果我使用日历,timeInMillis 是错误的。
我给你看一个例子:

// Get Current Time
Calendar calNow = Calendar.getInstance();
calNow.setTimeInMillis(System.currentTimeMillis());
calNow.add(Calendar.HOUR, calNow.get(Calendar.HOUR_OF_DAY));
calNow.add(Calendar.MINUTE, calNow.get(Calendar.MINUTE));
long now = calNow.getTimeInMillis();

now返回例如:1345848049917
now必须与 相同System.currentTimeMillis(),但不是,system返回1345846849921

now在我的时区:25.08.2012 - 00:40:49
System.currentTimeMillis()是:25.08.2012 - 00:20:49

整整 20 分钟后,但为什么呢?

4

1 回答 1

3

我不太确定您要做什么,但是这些行

calNow.add(Calendar.HOUR, calNow.get(Calendar.HOUR_OF_DAY));
calNow.add(Calendar.MINUTE, calNow.get(Calendar.MINUTE));

将一天中的小时和分钟翻倍,00:20:49变成00:40:49.

于 2012-08-24T22:33:16.727 回答