2015-02-07 96 views
1

我想轉換24小時,例如在幾分鐘內,0748或748。由於某種原因,它應該在468分鐘內將其轉換爲128分鐘。simpledateformat轉換24小時到分鐘

double time = 748; 
//parse time into SimpleDateFormat to easily extract hours and minutes 
Date date_time_to_minutes = new SimpleDateFormat("HHmm").parse(String.valueOf(time)); 
//hours extracted from time 
double extracted_hours = Integer.parseInt(new SimpleDateFormat("HH").format(date_time_to_minutes)); 
//minutes extracted from time 
double extracted_minutes = Integer.parseInt(new SimpleDateFormat("mm").format(date_time_to_minutes)); 
//converts the extracted hours into minutes and adds it to the extracted minutes 
double minutes = extracted_hours * 60 + extracted_minutes; 
+0

你缺少300分鐘= 5小時。考慮時區。 – pyb 2015-02-07 00:32:23

+0

@pyb錯誤。如果這是真的,那麼輸出將是168(2小時48分鐘)。 – rgettman 2015-02-07 00:38:57

回答

1

HHmm日期格式正在不7,但74作爲的小時數,離開8.0爲分鐘。插入這段代碼可以揭示發生了什麼。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
System.out.println(sdf.format(date_time_to_minutes)); 

輸出:

1970-01-04 02:08:00 

也就是說爲3天,2小時,8分鐘過去曆元(1970-01-01 00:00:00),又名74小時和8分鐘。

這個聲明date_time_to_minutes成功,大概是因爲我添加的前導「0」。

Date date_time_to_minutes = new SimpleDateFormat("HHmm").parse("0748"); 

輸出:

1970-01-01 07:48:00 

的解決方案是確保有一個前導零,如果小時值小於10。

​​