2014-01-30 104 views
0

我在服務器下面的代碼存儲爲gmt,並希望它根據Android設備timezone改變。我得到錯誤的值無法找出錯誤。我非常感謝任何幫助。
在此先感謝。獲取設備當前時間當服務器有gmt

public class MainActivity extends Activity { 

    TextView t; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     String d="2014-01-14 16:28:50"; 
     t=(TextView)findViewById(R.id.textView1); 
     Timestamp ts = Timestamp.valueOf(d);  
     long tsTime1 = ts.getTime(); 
     String r=getDate(tsTime1); 
     t.setText(r); 
    } 

    private String getDate(long timeStamp){ 
     SimpleDateFormat objFormatter = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); 
     objFormatter.setTimeZone(TimeZone.getDefault()); 

     Calendar objCalendar =  
      Calendar.getInstance(TimeZone.getDefault()); 
     objCalendar.setTimeInMillis(timeStamp*1000);//edit 
     String result = objFormatter.format(objCalendar.getTime()); 
     objCalendar.clear(); 
     return result;   
    } 
} 
+0

請修復您的代碼,'GETDATE()'似乎不完整的,古怪的格式,以我之前的功能。謝謝! –

+0

現在好嗎? – jason

+0

格式化看起來不錯,謝謝;-)但是在開頭(函數聲明)肯定缺少一些東西,請參閱'getDate()'之前的不匹配的大括號。 –

回答

1
public String TimeFormating(String Time) 
{ 
    SimpleDateFormat format_before = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    SimpleDateFormat format_to_Convert = new SimpleDateFormat("hh:mm a",Locale.getDefault()); 

    format_before.setTimeZone(TimeZone.getTimeZone("GMT")); 
    format_to_Convert.setTimeZone(TimeZone.getDefault()); 
    Date time = null; 
    try 
    {  
     time = format_before.parse(Time); 

    } catch (ParseException e) 
    { 
     e.printStackTrace(); 
    } 

    return format_to_Convert.format(time).toLowerCase(Locale.getDefault()); 

} 
+0

嗨Sagar.I使用過:'SimpleDateFormat format_before =新的SimpleDateFormat(「yyyy-mm-dd HH:mm:ss」); SimpleDateFormat format_to_Convert = new SimpleDateFormat(「yyyy-mm-dd hh:mm:ss a」,Locale.getDefault());''''''''''''''我沒有明白它說的月** 58 **。其餘都是正確的。請修復它。再次感謝。 – jason

+0

用'MM'代替mm。它工作得很棒+ 1.Thanks – jason