2016-11-23 128 views
-1

我存儲時間,在此格式數據庫:"hh:mm:ss"(示例 - 09:30:00),然後檢索,並試圖將其展示給這種格式的用戶:「HH:MM AM/PM」(示例 - 09: 30 AM)。有沒有辦法將時間從「hh:mm:ss」格式轉換爲「hh:mm AM/PM」格式?

我使用下面的代碼,用於將它:

DateFormat currentTime = new SimpleDateFormat("hh:mm a"); 
String startTimeInSF = currentTime.format(startTime); 
String endTimeInSF = currentTime.format(endTime); 

其中startTimeendTime是在hh:mm:ss格式,但上面的代碼是生產這樣的錯誤:java.lang.IllegalArgumentException: Bad class: class java.lang.String

請讓我知道我可以成功地轉換時間從hh:mm:sshh:mm AM/PM

+0

試試這個 「HH:MM TT」 –

+0

@PrasannaKumarJ失敗!產生這個錯誤:'java.lang.IllegalArgumentException異常:未知圖形字符「t'' –

+1

你需要一個'SimpleDateFormat'從其原始格式解析您的日期,而另一個'SimpleDateFormat'的結果格式化成一種新的格式。 –

回答

3

我想你應該分析你的 「HH:MM:SS」 的時間爲Date對象,然後用格式進行格式化爲 「HH:MM一」。

像這樣:

DateFormat format1 = new SimpleDateFormat("hh:mm:ss"); 
    try { 
     Date date = format1.parse("01:11:22"); 
     SimpleDateFormat format2 = new SimpleDateFormat("hh:mm a"); 
     String result = format2.format(date); 
     return result; 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
1

我相信你正在尋找的解析(字符串源)方法。 format()方法接受一個Date對象並輸出該對象的String表示。解析方法接受一個String對象並將其轉換爲一個Date對象。

做你想做什麼,你都需要有一個HH日期格式:MM:SS,使用解析數據庫字符串轉換爲日期,然後再使用現有的日期格式,並使用Date對象的格式獲得輸出字符串以顯示給您的用戶。

http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html

0

你需要改變你的代碼是這樣的,格式化的功能不會直接String對象,那是你的異常根源上工作。

DateFormat inputFormatter1 = new SimpleDateFormat"HH:mm:ss"); 
     Date date1 = inputFormatter1.parse("22:10:11"); 

     DateFormat outputFormatter1 = new SimpleDateFormat("hh:mm a"); 
     String output1 = outputFormatter1.format(date1); // 

輸出將是下午10時10

相關問題