2016-06-28 4 views
-1

テーブルの列データ型をCURRENT_TIMESTAMPに設定しました。それは現在の時間を正常に保存しました。日付は、Androidのmysqlからの構文解析

2016-06-28 11:00:44 // it's actual mysql data 

しかし、私はGSONアンドロイドを使用してから、それを解析したとき、私はT & Zに変更された空間を意味

2016-06-28T06:09:54.000Z // parsed from json 

のような日付文字列を得ました。どうやってこの2つのフィールドを削除しますか?

私の解析データは、私はちょうど日付文字列から余分な文字を置き換える

Gson gson = new Gson(); 
        String json = gson.toJson(args); 

        JSONArray test = new JSONArray(json); 
        Log.i("user registration", json); 

        //JSONArray jsonArray = new JSONArray(args); 
        //String aa = jsonArray.getString(0).toString(); 
        //String aa = jsonArray.getString(0).toString(); 
        // Log.i("user registration", aa); 
        String aa = test.getString(0).toString(); 
        JSONObject jsonObject = test.getJSONObject(0); 
        JSONArray valueArrays = jsonObject.getJSONArray("values"); 

// // // //       Log.e("email",newArr.getJSONObject(0).getString("email")); 
        for (int i = 0; i < valueArrays.length(); i++) { 

         JSONObject jo = valueArrays.getJSONObject(i); 

         String nvp = jo.getString("nameValuePairs"); 

         jo = new JSONObject(nvp); 

         User user = new User(); 
         String name = jo.getString("user_name"); 
         user.setUserName(name); 
         if (name.equalsIgnoreCase(mUsername)) { 

          Log.i("user_matched", "I am " + mUsername); 
          continue; 

         } 
         user.setEmail(jo.getString("email")); 
         user.setSocket_id(jo.getString("socket_id")); 
         user.setLastSeen(jo.getString("last_seen")); 

         if (jo.getString("status") == "1") { 
          user.setStatus("online"); 
         } else 
          user.setStatus("offline"); 


         mUserList.add(user); 
        } 
+1

ここにあなたのコードを投稿.. – Ironman

+0

https://en.wikipedia.org/wiki/ISO_8601 – Selvin

+0

このSimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd'T'hh:mm:ss.SSS'Z '") 'を試してください。この単純な形式で日付を解析するobj 'sdf' – SripadRaj

答えて

0

のようなものです。

Date rightFormatDateFromList(String formatted_date) { 

    SimpleDateFormat dateFormat = new SimpleDateFormat(
      "yyyy-MM-dd hh:mm:ss"); 
    try { 

     Log.e("Wrong Format", "" + formatted_date); 
     formatted_date = formatted_date.replace('T', ' '); 
     formatted_date = formatted_date.replace(".000Z", ""); 
     Log.e("Right Format", "" + formatted_date); 
     return dateFormat.parse(formatted_date); 

    } catch (Exception w) { 
     return null; 
    } 

} 

ログイン間違ったフォーマット:2016-06-29T09:11:34.000Z

適切なフォーマット:2016年6月29日は9時11分34秒

関連する問題