2011-09-02 12 views
9

Tengo un problema para ordenar la fecha debido al formato de estas fechas.Android: formato de fecha en una cadena

puedo obtener la fecha:

final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

Y generar una cadena con estos valores.

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

El problema es que si el mes es por ejemplo de febrero de valor mMonth es de 2. Así que con las fechas (mes como 10 octubre) viene antes en mi lista.

Lo que necesito es que mes y día estén formateados como MM y dd. Pero no sé cómo hacerlo en mi caso.

EDITAR:

I solucionó el problema mediante el uso de un DateFormat como se dijo anteriormente.

que sustituyen esto:

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

Por esto:

Date date = new Date(mYear - 1900, mMonth, mDay); 
dateFacDB = DateFormat.format("yyyy.MM.dd", date).toString(); 

y funciona. Gracias a todos por su ayuda :)

+2

intente esto: http: // stackoverflow.com/preguntas/7165901/Android Formato-date-and-tiempo- http://stackoverflow.com/questions/6705031/how-to-format-a-date http: // stackoverflow. com/questions/6520553/date-and-time-format –

Respuesta

3

Necesita ordenar las fechas, no las cadenas. Además, ¿has hablado sobre DateFormat? Hace todo lo que atesora para ti.

+0

Resuto esta solución, a menos que por alguna razón no especificada realmente necesite trabajar con esas cadenas ... pero ernazm da en el clavo: use las clases de Android: D – Kheldar

0

Si entiendo su problema, crea una lista de fechas y como son cadenas, se organizan en orden de diccionario por número, lo que significa que obtendrá octubre antes de febrero (10 antes de 2).

Si yo fuera usted, almacenaría mis resultados en un contenedor donde controle el punto de inserción (como una lista de matriz) o donde pueda controlar el algoritmo de clasificación.

1

aquí es el ejemplo de formato de fecha

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = new Date(); 

System.out.println("format 1 " + sdf.format(date)); 

sdf.applyPattern("E MMM dd yyyy"); 
System.out.println("format 2 " + sdf.format(date)); 
13

aquí es una manera simple de convertir Fecha de encordado:

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String strDt = simpleDate.format(dt);

7
Calendar calendar = Calendar.getInstance(); 
Date now = calendar.getTime(); 
String timestamp = simpleDateFormat.format(now); 

Estos pueden venir en práctico

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); 

este formato es igual a -> "2016-01-01T09: 30: 00.000000 + 01: 00"

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ"); 

este formato es igual a -> "2016-06-01T09 : 30: 00 + 01: 00 "

Cuestiones relacionadas