0

I'm having a hard time trying to get a date string from a MYSQL server (it's a date but i receive it as a String), and converting it to a Date format inside my android application. I need to convert it to Date (or wichever equivalent) because I need to compare the dates I fetch from the server and detect the latest one.

Thanks in advance, any help would be apreciated

This is my code:

private void makeJsonObjectRequest() {

            String nuevoUrl = url + "?unidad=" + unidad.getText().toString();
            JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
                    nuevoUrl , new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    Log.d(TAG, response.toString());

                    try {
                        // Parsing json object response
                        // response will be a json object
                        //Esta linea de abajo convierte el array en lista de objetos
                        medidores = response.getJSONArray("medidor");

                        //Esto sirve para convertir el srting de fecha a tipo Date
                        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        ParsePosition pos = new ParsePosition(0);



                        //Este es un array de objetos "medidor" (clase java)
                        medidor med[] = new medidor[medidores.length()];

                        for (i=0;i<medidores.length();i++) {
                            JSONObject objeto = medidores.getJSONObject(i);


                            String sunidad = objeto.getString("unidad");
                            String stpo_med = objeto.getString("tpo_med");
                            String snum_med = objeto.getString("num_med");
                            String sfec_med = objeto.getString("fec_med");
                            String sest_med = objeto.getString("est_med");


                            //Date fecha = formatter.parse(sfec_med,pos);


                            //med[i] = new medidor(sunidad,stpo_med,snum_med,fecha,sest_med);
                            /*
                            med[i].setUnidad(sunidad);
                            med[i].setTpo_med(stpo_med);
                            med[i].setNum_med(snum_med);
                            med[i].setFec_med(fecha);
                            med[i].setEst_med(sest_med);
                            */
                            /*
                            if(i>0 && mayor.before(fecha2)) {

                                //La fecha i es mayor a la fecha i-1
                                mayor = fecha2;
                            }
                                else{
                                    //mayor = med[i-1].getFec_med();
                                }*/

                            jsonResponse = "La mayor fecha es: " + sfec_med;

                            /*jsonResponse += "";
                            jsonResponse += "Unidad: " + sunidad + "\n\n";
                            jsonResponse += "Tipo medidor: " + stpo_med + "\n\n";
                            jsonResponse += "Num medidor: " + snum_med + "\n\n";
                            jsonResponse += "Fecha medicion: " + sfec_med + "\n\n";
                            jsonResponse += "Estado medido: " + sest_med + "\n\n";
                            */
                        }

                        usuario.setText(jsonResponse);

                    } catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(getApplicationContext(),
                                "Error: " + e.getMessage(),
                                Toast.LENGTH_LONG).show();
                    }

                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                    Toast.makeText(getApplicationContext(),
                            error.getMessage(), Toast.LENGTH_SHORT).show();

                }
            }) {


            };




            // Adding request to request queue

            AppController.getInstance().addToRequestQueue(jsonObjReq);
        }

2 Answers2

0
String sqlDateTimeString = "2015-09-24 18:56:15.089";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date = format.parse(sqlDateTimeString);
HulkSmash
  • 386
  • 1
  • 6
0

Why dont you save the dates as LONG? Insert: date.getTime(); Fetch: new Date("put long in here");

XxGoliathusxX
  • 922
  • 13
  • 34
  • I tried this. I got an error saying type java.lang.String cannot be converted to long – Joaquin Arias Simone Sep 18 '15 at 01:36
  • Why convert string to long? Save the date as "LONG" in your database. Then insert a java date via date.getTime() in the DB. And when you query one or all LONG-dates from your DB create for every LONG-date a new JAVA Date(long). Long -> Time in Millis – XxGoliathusxX Sep 18 '15 at 01:43