我想将类中的Time
实例与当前系统时间进行比较。我正在使用before
和after
方法,但它会产生意外结果。
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");
}
这个问候应该执行,但不是。有没有办法比较时间。
答案 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");
}