2012-05-07 9 views
0

にタイムゾーンから日付文字列を変換する私は電話がある場合は、この異なるタイムゾーン

05/07/2012 16:55:55は、月/日/年、時間

を行くように、私はESTでフォーマットされたサーバから取得した日付を持っています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){ 

       } 

をフォーマットするとき、私はそれを変換

OK今の時間が修正されていない:私はミリ秒単位の時間を持っている場合

それは問題ないだろうが、私は

はEDITいけません"EST"に設定してから、その時間をデフォルトのTimeZoneに設定しますが、時間は常に1時間ずれています。

+0

あなたは元の日付/時刻がUTCに(ESTに)変換することができますか?電話機のタイムゾーン設定を検出して、電話機のタイムゾーンに基づいて送信元の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

Dateに文字列を解析するDateFormatクラスを使用します。

はここの場合には、あなたが興味がある、変換をカバーして、別の質問です。

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

...あなたはその後、日付のカレンダーを作成することができますhttp://docs.oracle.com/javase/1.5.0/docs/api/java/text/DateFormat.html

...ここAPIドキュメントへの導入を参照してください。そして、あなたは使用して別のタイムゾーンにカレンダーのタイムゾーンを変更することができます。それとも、正しい方向にあなたを置く必要がありますCalendarDate、そしてDateFormatクラスを使用getTimeInMillis()

使用して、時間をミリ秒単位で取得します。

ここCalendarマニュアルを参照してください... http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

関連する問題