【发布时间】:2015-12-15 00:04:54
【问题描述】:
我很难尝试从 MYSQL 服务器获取日期字符串(这是一个日期,但我将它作为字符串接收),并将其转换为我的 android 应用程序中的日期格式。我需要将其转换为 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);
}
【问题讨论】:
-
请分享您用于数据访问的代码。
-
您可以使用 JodaTime 轻松实现日期和时间功能。
-
好像你在那里解析 JSON 日期。查看Converting ISO 8601-compliant String to java.util.Date 了解可能的解决方案。
-
为什么你会收到一个字符串?
标签: java android mysql string date