我试图通过将它们转换为毫秒if (20:00 > 19:30) // do anything
来比较两个不同的小时。在millis中,它将是if (72000000 > 70200000) // do anything
但是智能手机做得不好。我将数字存储在变量long
中,与日历一样,方法myCal.getTimeInMillis()
会返回long
,但它不起作用。
我尝试将变量的数据类型从long
更改为double
,但它确实有效,所以我发现那些大数字只是"不适合&#34 34;在变量中,但是,为什么Java Calendar方法getTimeInMillis()
返回long?
Java Calendar中的时间如何?提前谢谢。
编辑:
感谢您的回答和时间,对此问题我很抱歉,因为它可以比较存储在长变量中的不同小时数。我再次尝试过它确实有效(我不知道为什么它之前没有工作)。我正在为Android制作一个闹钟应用程序,我不仅要比较两小时(和分钟和秒),还要比较星期几等等。所以我打算将这个问题的解决方案标记为@Sufiyan Ghori的答案,因为我认为它可以真正帮助我,我想我会删除这个问题,因为它没有任何意义。
我是新来的(以及一般的编程),很抱歉这个愚蠢的问题。
答案 0 :(得分:0)
而不是比较将其转换为毫秒后的小时数,您可以在将时间设置为两个单独的Date::before
对象后使用Date::after
或Date
方法。
Date date1 = new Date(); // set time for first hour.
Date date2 = new Date(); // set time for second hour.
您可以使用Calendar
为每个Date
对象设置时间,例如
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,12);
cal.set(Calendar.MINUTE,10);
cal.set(Calendar.SECOND,31);
cal.set(Calendar.MILLISECOND,05);
date1 = cal.getTime(); //set time for first hour
然后使用这些进行比较,
if(date1.after(date2)){
}
if(date1.before(date2)){
}
和Date::equals
,
if(date1.equals(date2)){
}
答案 1 :(得分:0)
getTimeInMillis()没有返回从当天开始传递的毫秒数,它返回自1970年1月1日00:00:00 GMT后经过的millisecons。
查看Calendar类的文档:java.util.Calendar