我想检查当前时间是否是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);
Run Code Online (Sandbox Code Playgroud)
当我这样做时:今天的毫秒:它显示1458066660000,明天它是:1458153060000
那么如何检查当前时间是否为00:01 AM?
如何比较当前时间与给定时间的简单方法..?
谢谢!
我不相信有"毫秒时间"的日历字段,但您可以使用:
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);
Run Code Online (Sandbox Code Playgroud)
要获得当前时间,您可以使用:
cal.setTimeInMillis(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)
...然后执行相同的计算.
所有这些当然都对日历的时区敏感,所以要确保它是合适的.
正如评论中所述,如果你只想找到它是00:01,你只需要找到一天中的一分钟:
int minuteOfDay =
TimeUnit.HOURS.toMinutes(cal.get(Calendar.HOUR_OF_DAY)) +
cal.get(Calendar.MINUTE);
Run Code Online (Sandbox Code Playgroud)
或者只是检查这两个字段是否相等:
if (cal.get(Calendar.HOUR_OF_DAY) == 0 &&
cal.get(Calendar.MINUTE) == 1)
{
...
}
Run Code Online (Sandbox Code Playgroud)
但是如果这是一个警报,你可能最好还是计算下一次出现并存储它,然后检查是否已经过了那个时间.如果没有更多的背景,很难确切地知道建议什么,但希望这给了你足够的工具来自己完成剩下的工作......
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |