2017-04-15 26 views
-1

「2000-01-01T12:00:00.000Z」のようなGMT形式の文字列値を取得でき、読みやすい日付/時刻形式に変換したいと考えています。私は、次のコードを使用していますそれをAndroid GMTを現在の現地時間に換算する

を行う方法がわからないが、動作しているようですしない

 schedules = matrix.get("schedules").getAsJsonArray(); 
     schedules_array = schedules.get(0).getAsJsonObject(); 
     final String open = schedules_array.get("open").getAsString(); 

     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
     try { 
      Date date = format.parse(open); 
      Log.d("OPEN", String.valueOf(date)); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

投稿する前にスタックオーバーフローを検索してください。このトピックはすでに何度も言及されています。また、面倒なレガシークラスを使用していて、java.timeクラスに置き換えられています。 Android用ThreeTenABPプロジェクトを参照してください。 –

答えて

2
あなたの入力はミリ秒を持っているので

まず、フォーマット文字列修正:

をを呼び出す前に、次のステートメントを追加します。

  1. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
    

    あなたは、2つの選択肢があります:

    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
    
  2. 変更入力文字列に時間帯を使用するフォーマット:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); 
    

私は二番目を示唆しています。

+0

ありがとう、これは私がしたかったものです:) –

関連する問題