以毫秒为单位的变量存储时间类型?选择正确的数据类型

时间:2015-02-04 19:15:53

标签: java types calendar long-integer

Java中的

我试图通过将它们转换为毫秒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的答案,因为我认为它可以真正帮助我,我想我会删除这个问题,因为它没有任何意义。

我是新来的(以及一般的编程),很抱歉这个愚蠢的问题。

2 个答案:

答案 0 :(得分:0)

而不是比较将其转换为毫秒后的小时数,您可以在将时间设置为两个单独的Date::before对象后使用Date::afterDate方法。

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