我对如何将9:30 am这样的给定时间转换为毫秒感到非常困惑,因为如果超过了某个时间,我就需要运行代码。我已经知道如何通过以下代码获取当前时间(以毫秒为单位):
long timestamp = System.currentTimeMillis();但是我如何将9:30 But转换为毫秒?我已经研究了几个小时了,我似乎只能找到如何获得当前时间。
我的应用程序需要检查时间是晚上9:30还是已经过了,如果是,则运行一条toast消息。
发布于 2014-04-17 05:39:25
在Android上最快也是最正确的方法就是使用Calendar。您可以使Calendar实例成为静态实例,并在需要时重用它。
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 9);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.AM_PM, Calendar.PM);
long timeInMillis = calendar.getTimeInMillis();发布于 2014-04-17 05:54:25
我不需要检查时间(以毫秒为单位),您可以使用Calendar类将当前时间与所需值进行比较:
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
if (hour > 21 || (hour == 21 && minute >= 30)) {
doSomeJob();
}请注意,此代码在午夜后将不起作用。
发布于 2014-04-17 07:16:52
如果你今天9:30 If 需要毫秒的时间,你应该使用Calendar对象来构建你需要的日期和时间。
// init calendar with current date and default locale
Calendar cal = Calendar.getInstance(Locale.getDefault());
cal.setTime(new Date());
// set new time
cal.set(Calendar.HOUR_OF_DAY, 21);
cal.set(Calendar.MINUTE, 30);
cal.set(Calendar.SECOND, 0);
// obtain given time in ms
long today930PMinMills = cal.getTimeInMillis();https://stackoverflow.com/questions/23120544
复制相似问题