Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 13/03/15, 02:15:33
Avatar de cristobal22
cristobal22 cristobal22 no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: mar 2015
Mensajes: 2
Modelo de smartphone: lg g3
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
sqlite android

hola hola , espero que esten bien estoy haciendo una aplicacion en android y estoy ocupando sqlite me funciona todo perfecto el unico problema es al momento de ordenar mis datos ya que quiero que se ordene de forma ascendete por fecha, en la base bueno parametros DATE en formato DD-MM-YYYY y para hacer la consulta hago:

Cursor c=db.query("rutinas", columns, null, null, null, null, "fecha"+" ASC");

el problema es que igual me quedan desordenadas .

como podria ordenar mis datos por fecha?

Gracias
Responder Con Cita


  #2  
Viejo 14/03/15, 18:40:21
Avatar de Dild0
Dild0 Dild0 no está en línea
Usuario muy activo
Mensajes: 860
 
Fecha de registro: may 2009
Mensajes: 860
Versión de ROM: CyanogenMOD
Tu operador: Pepephone
Mencionado: 3 comentarios
Tagged: 0 hilos
Creo que sqlite no tiene DATES por lo que lo ordena en formato String

La verdad desconozco como se podría hacer se me ocurren dos maneras quizá exista algo más fácil.

La primera parsea la fecha de la query poniendola en juliano o bien YYYYMMDD como number,

Otra opción es ordenarlo en java si lo que retornas es un arraylist puedes ordenarlo implementando Comparator
Responder Con Cita
  #3  
Viejo 14/03/15, 19:46:25
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
SQLite efectivamente no tiene DATE, así que estarás almacenando DDMMYYYY en NUMERIC, y eso efectivamente no te dará nunca un orden correcto 02022015 es mayor que 03012015 en DATE, pero no en NUMERIC.

Puedes hacer lo que dice Dild0, que siempre te dará un orden correcto en NUMERIC, o puedes almacenar el CurrentTimeMillis.
Responder Con Cita
  #4  
Viejo 17/03/15, 12:45:24
Avatar de androizado
androizado androizado no está en línea
Miembro del foro
Mensajes: 191
 
Fecha de registro: dic 2012
Mensajes: 191
Modelo de smartphone: Nexus 5
Versión de ROM: 5.0.1 Lollipop
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Estoy con ambos compañeros que te comentaron anteriormente, almacena por CurrentTimeMillis();

Código:
long time = System.currentTimeMillis();
Log.i("tu tag", "El tiempo en milisegundos es: "+time);
Si necesitas pasar los milisegundos a formato fecha puedes hacer esto otro:

Código:
long milisegundos = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultado = new Date(milisegundos);
Log.i("tu tag", "En formato fecha: "+resultado);
Espero que te sirva
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 09:50:49 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007