4

我想将Time类中的实例与当前系统时间进行比较。我正在使用beforeandafter方法,但它给出了意想不到的结果。

Time currentSystemTime = new Time(new java.util.Date().getTime());
Time t = Time.valueOf("23:25:00");
System.out.println(currentSystemTime+"  currentTime");
System.out.println(t+"  hardcoded Time");

输出

21:24:48  currentTime
23:25:00  hardcoded Time

但是现在,如何比较这两次。我正在尝试以下方法。它不起作用。

if(currentSystemTime.before(t))
{
  System.out.println("Hello"); 
}

这个你好应该执行,但它不是。有什么方法可以比较时间。

4

3 回答 3

1

因为他们的年代不同,

public static void main(String[] args) {
        Time currentSystemTime = new Time(new java.util.Date().getTime());
        Time t = Time.valueOf("23:25:00");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        System.out.println(currentSystemTime + "  currentTime");
        System.out.println(t + "  hardcoded Time");
        System.out.println(sdf.format(currentSystemTime));
        System.out.println(sdf.format(t));
        if (currentSystemTime.before(t)) {
            System.out.println("Hello");
        }
    }

结果是...

17:04:13  currentTime
23:25:00  hardcoded Time
2013-10-15T17:04:13.758+0100
1970-01-01T23:25:00.000+0100

getTime() 会像@barwinkk 提到的那样工作的原因是它返回自 1970 年 1 月 1 日,格林威治标准时间 00:00:00 以来此 Date 对象表示的毫秒的长表示形式。

于 2013-10-15T16:05:08.420 回答
-1

您可以通过调用 getTime() 以毫秒为单位获取时间。现在将一个与另一个进行比较,这样您就可以得到之前或之后的结果。

于 2013-10-15T16:03:58.133 回答
-1
Time currentSystemTime = new Time(new java.util.Date().getTime());
Time t = Time.valueOf("23:25:00");
System.out.println(currentSystemTime+"  currentTime");
System.out.println(t+"  hardcoded Time");
if(currentSystemTime.getTime()<t.getTime())
{
  System.out.println("Hello"); 
}
于 2013-10-15T16:05:28.517 回答