2017-02-08 105 views
-1

我是android開發人員的新手。我將GMT轉換爲本地移動時間。我在這段代碼中遇到了am/pm問題。晚上6點鐘後。我得到了轉換。 對不起我的英語。提前感謝您的幫助。在Android中將GMT轉換爲本地時間格式

public String formatDate(String s) 
    { 
     String outputText=null; 
     try { 
//   Tue May 21 14:32:00 GMT 2012 
      String inputText =s; 
      SimpleDateFormat inputFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm 'GMT'", Locale.US); 
      inputFormat.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); 


      if(android.text.format.DateFormat.is24HourFormat(CalloutAvalibality.this)) 
      { 

       SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd,yy HH:mm"); 
       // Adjust locale and zone appropriately 
       Date date = inputFormat.parse(inputText); 


       outputText= outputFormat.format(date)+" "+"Hrs"; 
       System.out.println(outputText); 

      } 
      else 
      { 
       SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, yyyy hh:mm a"); 

       // Adjust locale and zone appropriately 
       Date date = inputFormat.parse(inputText); 
       outputText= outputFormat.format(date); 

//    outputText=outputText.replace("AM","am"); 
//    outputText=outputText.replace("PM","pm"); 
       System.out.println(outputText); 
      } 


     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return outputText; 
    } 

回答

0

datefomater.format()將返回一個字符串,該字符串將轉換爲您最初使用formatter對象設置的時區。

datefomater.parse()將返回一個Date對象是在你的本地時區

Date對象將設置爲默認時區

TimeZone timeZone = TimeZone.getTimeZone("America/Chicago"); 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
formatter.setTimeZone(timeZone); 

String result = formatter.format(YOUR_DATE_OBJECT); 
相關問題