如何比较Time.sql

时间:2013-10-15 16:00:04

标签: java time

我想将类中的Time实例与当前系统时间进行比较。我正在使用beforeafter方法,但它会产生意外结果。

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"); 
}

这个问候应该执行,但不是。有没有办法比较时间。

3 个答案:

答案 0 :(得分: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 GMT以来由此Date对象表示的毫秒的长表示。

答案 1 :(得分:-1)

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

答案 2 :(得分:-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"); 
}