2016-01-24 50 views
0

我試圖將12小時格式中給出的時間轉換爲24小時格式。用於在24小時內以12小時格式輸入時間的輸出(不使用任何建立類)

但是我沒有得到預期的輸出時間是AM。

誰能指導我爲什麼?

輸入形式

HH:MM:SS

MyApproach

要轉換在24小時格式我檢查如果時間在AM給定的時間, 我打印的按原樣輸出。 如果時間是下午給我加12個小時的時間

下面是我的函數:

public static String timeConversion(String time) 
{ 
    String strnew1=""; 
    String strnew2=""; 
    String strnew=""; 
    String strnew3=""; 

    boolean b1=true; 
    for(int i=time.length()-2;i<time.length();i++) 
     { 
      strnew=strnew+time.charAt(i); 
     } 


    if(strnew=="AM") 

    { 

    b1=false; 
    for(int m=0;m<time.length()-2;m++) 
    { 
      strnew3=strnew3+time.charAt(m); 
    } 
    System.out.println("jhh"); 

    System.out.println(strnew3); 

    } 



    else 
    { 
     for(int j=0;j<2;j++) 
     { 
                        strnew1=strnew1+time.charAt(j); 

     } 



    int a=Integer.parseInt(strnew1); 
    int b=a+12; 
    strnew2=b+strnew2; 
    for(int k=2;k<time.length()-2;k++) 
    { 
     strnew2=strnew2+time.charAt(k); 
    } 

    } 
if(b1==false) 
return strnew3; 
else 
return strnew2; 

} 

} 

**OutputShown** 

Input    OutputShown   Expected Output 
05:32:32AM   17:32:32    05:32:32 
+0

爲什麼不使用預定義的類SimpleDateFormat而不是編寫自己的? – Satya

+0

我無法使用that.A測試 –

+0

請正確格式化您的代碼,並刪除所有不相關的部分,如空循環和無意義的打印語句。 – yole

回答

2

的問題是在這裏

if(strnew=="AM") 

字符串在Java中都是這樣比較:

if(strnew.equals("AM")) 

但也有另一個問題12PM應該成爲12和12AM應該變成00.你需要檢查這些特殊情況。

+0

是的,我正在轉換它。如果有任何錯誤,我會在這裏評論。 –

相關問題