javajsf中的时差

javajsf中的时差,java,date,Java,Date,我以“20:01:00”格式将时间存储为双精度 我可以计算上述时间的不同2 变量1=18:20:00 变量2=19:22:00 因此,如果variable1大于variable2,它将执行一些操作 如何在java中实现它?请改用类。它有这样的方法,这比比较实现要好得多。将时间存储为double是完全错误的(因为时区不同等)。如果您以您提到的字符串格式接收时间,您可以使用SimpleDataFormat创建如上所述的日期对象,然后使用类似compareTo(Date anotherDate)的方法

我以“20:01:00”格式将时间存储为双精度

我可以计算上述时间的不同2

变量1=18:20:00 变量2=19:22:00

因此,如果variable1大于variable2,它将执行一些操作


如何在java中实现它?

请改用类。它有这样的方法,这比比较实现要好得多。将时间存储为double是完全错误的(因为时区不同等)。

如果您以您提到的字符串格式接收时间,您可以使用SimpleDataFormat创建如上所述的日期对象,然后使用类似compareTo(Date anotherDate)的方法,甚至可以从另一个时间中减去一个时间。比如:

DateFormat df = new SimpleDateFormat("hh:mm:ss");
Date date1 = df.parse(stringDate1);
Date date2 = df.parse(stringDate2);
if (date1.compareTo(date2) < 0) {
    # date1 is before date2 
} else if (date1.compareTo(date2) > 0) {
    # date1 is after date2
} else {
    # they are the same
}
DateFormat df=新的SimpleDataFormat(“hh:mm:ss”);
Date date1=df.parse(stringDate1);
DateDate2=df.parse(stringDate2);
如果(日期1)与(日期2)相比<0{
#日期1早于日期2
}如果(日期1.与(日期2)>0相比){
#日期1在日期2之后
}否则{
#它们是一样的
}

日期是否为双精度?这是新的东西,我想我已经看到了一切:(

不要这样做。该类只不过是一个
long
时间戳,带有不推荐使用的方法。此时间戳的值是一个
long
原语,表示从纪元开始的毫秒(1970年1月1日00:00 GMT)。这是一个毫秒精度的整数,因此请不要将其存储为
双精度
,否则编译器会崩溃


为了简单起见,在处理日期和日历时,您可以查看以获取方便和有用的方法。

请发布一些代码示例。恐怕问题还不太清楚。还没有编码。这是我必须输入代码的要求…@benylim为什么要将时间存储为双倍?