2015-08-19 51 views
0

我有REPORTDATE字段,在那裏我想採取小時和分鐘的值。 reportdate.getTime()返回此例如:1439967368798JAVA比較剛纔的時間(getTime函數)

我想比較,如果從reportdate(小時和分鐘)時間之間:

if reportdate>=06:45 and reportdate<13:45 then a=1; 
if reportdate>=13:45 and reportdate<20:45 then a=2; 
if reportdate>=20:45 and reportdate<06:45 then a=3; 

我沒有成功找到網絡上的一些指令。 我應該使用getTime(1439967368798)或其他方法得到的值來嘗試嗎?

+0

您應該爲此使用['Calendar'](http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html)。 – Dragondraikk

+0

可以使用JodaTime或Java 8的Time API,例如'LocalTime lt = new Date(1439967368798L).toInstant()。atZone(ZoneId.systemDefault())。toLocalTime();',這將允許您使用'before '和'after'(和'equals')來比較'LocalTime'的其他實例 – MadProgrammer

回答

0

我假設reportDateDate的一個實例。 getTime()函數返回日期的基本長度,這就是爲什麼你看到這個長數字 - 自1970年1月1日00:00:00 GMT以來的毫秒數。

您需要做的是將日期轉換爲日曆,然後將get()方法與相應的字段常量一起使用。

此信息適用於沒有任何庫的Java 7。使用像JodaTime或Java8 Time API這樣的庫是明智的。

Here是一個例子如何做到這一點。

+0

嗨我不能使用JodaTime,因爲我正在某些IBM應用程序中使用有限的Java框架進行編程,我不能包含一些額外的庫 – Dejan

0

是否這樣?

Date date = new Date(); 
SimpleDateFormat format = new SimpleDateFormat("HH:mm"); 
if (date.after(format.parse("06:45")) && date.before(format.parse("13:45"))) { 
a=1; 
} 
+0

是的,它會工作還比較20:45和06; 45? – Dejan

+0

您在哪裏比較REPORTDATE字段中的值? – Dejan

+0

@Dejan對不起,我展示的是原理,不是現成的解決方案。可以在這裏插入報告日期Date date = reportDate; – Les