我有不一致的問題,隨着時間的推移對象Java的時間問題
Time time1 = new Time(72000000); //21:00
Time time2 = new Time(new Date().getTime()); //before 21 pm
time2.before(time1);
最後一行返回總是假的,爲什麼呢?
我有不一致的問題,隨着時間的推移對象Java的時間問題
Time time1 = new Time(72000000); //21:00
Time time2 = new Time(new Date().getTime()); //before 21 pm
time2.before(time1);
最後一行返回總是假的,爲什麼呢?
這不是在做你認爲它應該做的事!
Time time1 = new Time(72000000);
看到這個:
Time public Time(long time) Constructs a Time object using a milliseconds time value. Parameters: time - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT
現在,希望你懂的...
另一個人先回答 –
時間:
與java.util.Date類,它允許JDBC API將該類標識爲SQL TIME值瘦包裝。 Time類添加格式化和解析操作以支持時間值的JDBC轉義語法。 日期組件應該設置爲1970年1月1日的「零時期」值,不應該被訪問。
http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html
基本上你在一天中某個時候比較21:00第一1970年1月到當前的日期。顯然以前的時間更早發生,並且「更小」。
由於您沒有另行指定,我假設Time
對象是java.sql.Time
。
該對象使用java.util.Date
的超類,所以它實際上是一個完整的日期對象。爲了JDBC(SQL)的目的,它只關注日期的時間部分。
此:
Time time1 = new Time(72000000);
...創建代表1月 - 1970年21:00的對象。它將始終在任何當前時間之前。
似乎時間1爲14:00。運行下面的代碼片段。
Time time1 = new Time(72000000); //21:00
System.out.println(time1); //prints 14:00
System.out.println(new Date());
Time time2 = new Time(new Date().getTime()); //before 21 pm
Java的時間大約是毫秒的數量自1970年1月1日, – Fabinout
這是那些總是被upvoted但在API中直接回答的問題之一。 –
提供的答案可以很好地解釋發生了什麼。如果你可以作爲API的時間和日期操作更好,我建議使用JodaTime(http://www.joda.org/joda-time/)。 – KrisM82