2012-05-07 41 views
0

我有我從EST此格式從一個時區轉換日期字符串到不同的時區

05/07/2012 16:55:55的服務器上下載日期推移月/日/年再一次

如果手機不是在EST中,我如何將它轉換爲手機所在的時區?格式化

   String sTOC = oNewSTMsg.getAttribute("TOC").toString(); 
       String timezoneID = TimeZone.getDefault().getID(); 
       DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); 
       format.setTimeZone(TimeZone.getTimeZone("EST")); 
       String newtimezoneID = TimeZone.getDefault().getID(); 
       Date timestamp = null; 
       try{ 
        timestamp = format.parse(sTOC); 
        format.setTimeZone(TimeZone.getDefault()); 
        timezoneID = format.format(timestamp); 
       }catch(ParseException e){ 

       } 

確定現在的時間是不正確的我把它轉換:

那就不是問題,如果我以毫秒爲單位的時間,但我不

編輯到「EST」,然後將該時間格式化爲默認的TimeZone,但時間總是關閉一個小時,不知道爲什麼?

+0

你能轉換源日期/時間(EST)爲UTC?您可以檢測手機的時區設置,並將來源UTC日期時間轉換爲基於電話時區的本地日期時間 – rt2800

回答

1

使用下面的代碼獲得UNIX時間戳:

String serverResp = "05/07/2012 16:55:55"; 
DateFormat format = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); 
Date date = format.parse(serverResp); 

現在你有時間戳,你知道如何使用。

這裏的另一個問題涵蓋的轉換,如果你很好奇:Android Convert Central Time to Local Time

0

使用DateFormat類的字符串解析爲Date。看到介紹了這裏的API文檔... http://docs.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html

然後,您可以創建該日期的日曆...

Calendar cal = Calendar.getInstance().setTime(date); 

然後你就可以使用日曆上更改時區到不同的時區setTimezone()。或者只是得到以毫秒爲單位的時間,使用getTimeInMillis()

使用CalendarDateDateFormat類應該把你在正確的方向。

看到這裏的Calendar文檔... http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

相關問題