在android中只获得毫秒的时间

时间:2016-03-16 12:56:25

标签: android

我想检查当前时间是否是00:01 AM然后做一个特定的工作,我正在尝试将时间转换为毫秒,当我这样做时,我得到不同日期的不同毫秒值。

我试过了:

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(getResources().getString(R.string.zerozero)));
cal.set(Calendar.MINUTE, Integer.parseInt(getResources().getString(R.string.one)));
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);


long alarmtime = cal.getTimeInMillis();
long currenttime = System.currentTimeMillis();

Log.e("Value", "= " + alarmtime + " " + currenttime);

当我执行上述操作时:今天的毫秒数:显示 1458066660000 ,明天则为: 1458153060000

那么如何检查当前时间是否为00:01 AM?

如何将当前时间与给定时间进行比较的简便方法..?

谢谢!

2 个答案:

答案 0 :(得分:7)

我不相信那里的日历字段是"毫秒",但您可以使用:

long millisecondOfDay = 
    TimeUnit.HOURS.toMillis(cal.get(Calendar.HOUR_OF_DAY)) +
    TimeUnit.MINUTES.toMillis(cal.get(Calendar.MINUTE)) +
    TimeUnit.SECONDS.toMillis(cal.get(Calendar.SECOND)) +
    cal.get(Calendar.MILLISECOND);

要获取当前时间,您可以使用:

cal.setTimeInMillis(System.currentTimeMillis());

...然后执行相同的计算。

所有这些当然对日历的时区敏感,所以请确保它是合适的。

如评论中所述,如果您只是想查找它是否为00:01,您只需找到当天的分钟

int minuteOfDay = 
    TimeUnit.HOURS.toMinutes(cal.get(Calendar.HOUR_OF_DAY)) +
    cal.get(Calendar.MINUTE);

或者只是检查这两个字段是否相等:

if (cal.get(Calendar.HOUR_OF_DAY) == 0 &&
    cal.get(Calendar.MINUTE) == 1)
{
    ...
}

但是,如果这是一个警报,你可能最好不要计算下一次出现并存储它,然后检查是否已经过了那个时间。如果没有更多的背景,很难知道确切地建议什么,但希望这给了你足够的工具来自己做其余的工作......

答案 1 :(得分:2)

由于日历日正在变化,您无法使用getTimeInMillis()进行比较。相反,你最好比较小时和分钟字段(如果需要,你也可以做第二和毫秒)。

这样的事情:

Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(getResources().getString(R.string.zerozero)));
alarmCalendar.set(Calendar.MINUTE, Integer.parseInt(getResources().getString(R.string.one)));
alarmCalendar.set(Calendar.SECOND, 0);
alarmCalendar.set(Calendar.MILLISECOND, 0);

Calendar nowCalendar = Calendar.getInstance();

if(alarmCalendar.get(Calendar.HOUR_OF_DAY) == nowCalendar.get(Calendar.HOUR_OF_DAY)
    && alarmCalendar.get(Calendar.MINUTE) == nowCalendar.get(Calendar.MINUTE))
{
    //Do something
}