2013-04-04 81 views
0

我在以下格式的字符串中有一段時間。時間轉換

"MM/dd/yyyy hh:mm AM/PM" 

我需要的時間24:00小時格式

例如:

String str = "04/30/2013 10:20PM" 

我需要的時間爲22:20

+1

使用'SimpleDateFormat' http://docs.oracle.com/javase /1.4.2/docs/api/java/text/SimpleDateFormat.html – 2013-04-04 13:30:35

回答

3

你必須使用SimpleDateFormat的任何種類的日期 - 時間轉換。
你可以試試這個:

import java.text.SimpleDateFormat; 
import java.util.Date; 

public class DateConversion { 
    public void convertDate() { 
     try{ 
     SimpleDateFormat df = new SimpleDateFormat("HH:mm"); 
     SimpleDateFormat pf = new SimpleDateFormat("MM/dd/yyyy hh:mm a"); 
     Date date = pf.parse("10:20PM"); 
     System.out.println(pf.format(date) + " = " + df.format(date)); 
     }catch(Exception e){ 
     // Do your exception handling over here. 
     } 
    } 
} 

這將解決你的問題,我猜。
這將給出一個輸出:22:20

如果有任何問題,請讓我知道。

+0

使'pf'「MM/dd/yyyy hh:mm a」匹配完整的字符串。 – 2013-04-04 13:34:24

+0

謝謝赫斯特。完成 – 2013-04-04 13:36:33

+0

日期日期= pf.parse(dateStr); Time time = new Time(date.getTime());這將以sql時間格式給出時間。 – 2013-04-05 17:00:29

2

使用SimpleDateFormat將字符串轉換爲Date對象,然後對其進行格式化。

String str = "04/30/2013 10:20PM"; 
Date date = new SimpleDateFormat("MM/dd/yyyy hh:mma").parse(str); 
String result = new SimpleDateFormat("HH:mm").format(date); 

對於類似的問題,請參見here

1

使用 「HH」 而不是 「HH」 例如:

Date dNow = new Date(); 
SimpleDateFormat ft = new SimpleDateFormat ("MM/dd/yyyy HH:mm "); 
System.out.println("Current Date: " + ft.format(dNow)); 

in this link, specially in "Simple DateFormat format codes:"你可以發現:

Character Description    Example 

h   Hour in A.M./P.M. (1~12) 12 
H   Hour in day (0~23)   22