在哪种类型的变量中以毫秒为单位存储时间?选择正确的数据类型
In which type of variable store time in millis? Choosing a correct data type
在 Java 我试图通过将两个不同的小时转换为毫秒来比较它们 if (20:00 > 19:30) // do anything
。以毫秒为单位,它将是 if (72000000 > 70200000) // do anything
但智能手机做得不好。我将数字存储在变量 long
中,就像在 class 日历中一样,方法 myCal.getTimeInMillis()
returns a long
,但它不起作用。
我已经尝试将变量的数据类型从 long
更改为 double
并且它确实有效,所以我发现变量中的那些大数字只是 "doesn't fit",但是,为什么 Java 日历方法 getTimeInMillis()
returns 很长?
Java 日历中的时间是如何计算的?提前致谢。
编辑:
感谢您的回答和时间,我很抱歉这个问题,因为它确实可以比较存储在长变量中的不同时间。我又试了一次,它确实有效(我不知道为什么它以前不起作用)。我正在为 Android 制作一个闹钟应用程序,我不仅要比较两个小时(以及分钟和秒),还要比较星期几等等。所以我要把这个问题的解决方案标记为@Sufiyan Ghori 的答案,因为我认为它真的可以帮助我,我想我会删除这个问题,因为它没有任何意义。
我是新来的(在一般编程方面),很抱歉这个愚蠢的问题。
您可以在将时间设置为两个单独的 Date
对象后使用 Date::before
或 Date::after
方法,而不是在将小时数转换为毫秒后比较小时数。
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)){
}
getTimeInMillis() 不是从当天的开始算起 return 毫秒,而是从 1970 年 1 月 1 日 00:00:00 GMT 算起 returns 毫秒。
查看日历文档 class:java.util.Calendar
在 Java 我试图通过将两个不同的小时转换为毫秒来比较它们 if (20:00 > 19:30) // do anything
。以毫秒为单位,它将是 if (72000000 > 70200000) // do anything
但智能手机做得不好。我将数字存储在变量 long
中,就像在 class 日历中一样,方法 myCal.getTimeInMillis()
returns a long
,但它不起作用。
我已经尝试将变量的数据类型从 long
更改为 double
并且它确实有效,所以我发现变量中的那些大数字只是 "doesn't fit",但是,为什么 Java 日历方法 getTimeInMillis()
returns 很长?
Java 日历中的时间是如何计算的?提前致谢。
编辑:
感谢您的回答和时间,我很抱歉这个问题,因为它确实可以比较存储在长变量中的不同时间。我又试了一次,它确实有效(我不知道为什么它以前不起作用)。我正在为 Android 制作一个闹钟应用程序,我不仅要比较两个小时(以及分钟和秒),还要比较星期几等等。所以我要把这个问题的解决方案标记为@Sufiyan Ghori 的答案,因为我认为它真的可以帮助我,我想我会删除这个问题,因为它没有任何意义。
我是新来的(在一般编程方面),很抱歉这个愚蠢的问题。
您可以在将时间设置为两个单独的 Date
对象后使用 Date::before
或 Date::after
方法,而不是在将小时数转换为毫秒后比较小时数。
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)){
}
getTimeInMillis() 不是从当天的开始算起 return 毫秒,而是从 1970 年 1 月 1 日 00:00:00 GMT 算起 returns 毫秒。
查看日历文档 class:java.util.Calendar