我很难从MYSQL服务器获取日期字符串(这是一个日期,但我将其作为String接收),并将其转换为我的Android应用程序中的Date格式。我需要将它转换为Date(或等效的),因为我需要比较我从服务器获取的日期并检测最新的日期。
提前致谢,任何帮助都会被贬低
这是我的代码:
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);
}
答案 0 :(得分: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);
答案 1 :(得分:0)
为什么不把日期保存为LONG? 插入:date.getTime(); 获取:新日期(“长期在这里”);