android stringtokenizer android-date

android date format



Convierta el valor de tiempo al formato “hh: mm Am/Pm” usando Android (9)

1 Suponiendo que necesita mostrar la hora actual en el formato 09:30 PM . Este sería un enfoque bastante fácil. Incluso si no lo requiere para la hora actual, debería poder utilizar el DateFormat que se encuentra a continuación para sus requisitos.

Calendar cal = Calendar.getInstance(); DateFormat outputFormat = new SimpleDateFormat("KK:mm a"); String formattedTime = outputFormat.format(cal.getTime());

2 Nota: el siguiente formateador se puede usar para mostrar la misma hora en formato de 24 horas ( 21:30 ).

new SimpleDateFormat("HH:mm");

3 Sin embargo, si desea crear el mismo formato que en mi primer punto, es mejor usar el siguiente código, ya que Java no recomienda el uso de StringTokenizer . Puedes leer sobre esto aquí, http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html

Espero que esto te ayude, gracias!

String startTime = "2013-02-27 21:06:30"; String[] parts = startTime.split(" "); DateFormat outputFormat = new SimpleDateFormat("KK:mm a"); SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm:ss"); try { Date dt = parseFormat.parse(parts[1]); System.out.println(outputFormat.format(dt)); } catch(ParseException exc) { exc.printStackTrace(); }

Obtengo el valor de fecha de la base de datos como "2013-02-27 06:06:30" utilizando StringTokenizer. Obtendré el tiempo por separado, como se muestra a continuación.

String startTime = "2013-02-27 06:06:30"; StringTokenizer token = new StringTokenizer(startTime); String date1 = token.nextToken(); String time1 = token.nextToken();

y en time1 estoy obteniendo el resultado 06:06:30,

¿Puedo volver a almacenarlo en otra variable de tipo String de la siguiente manera?

String displayValue = "06:06 AM";

Y si la variable time1 tiene el valor de

String time = 16:00:00;

entonces se debe convertir a:

String displayValue = "04:00 PM";



La respuesta seleccionada tuvo el problema de mostrar el tiempo equivocado. Si su hora es 12:30:00 , muestra 12:30 AM en lugar de 12:30 PM . El siguiente código ayudará a superar el problema.

SimpleDateFormat sdf = new SimpleDateFormat("KK:mm:ss"); SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a"); Date dt1 = null; try { dt1 = sdf.parse("12:00:00"); Log.i("Time in Am Pm ", sdfs.format(dt1)); } catch (ParseException e) { e.printStackTrace(); }


Primero, no necesitas usar StringTokenizer para obtener el tiempo de cadena. Solo pasa tu tiempo de startTime esta manera:

// Get date from string SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = dateFormatter.parse(startTime); // Get time from date SimpleDateFormat timeFormatter = new SimpleDateFormat("h:mm a"); String displayValue = timeFormatter.format(date); // Done!


Prueba esto

String time = "22:35"; try { SimpleDateFormat sdf = new SimpleDateFormat("H:mm"); Date dateObj = sdf.parse(time); System.out.println(dateObj); System.out.println(new SimpleDateFormat("K:mm").format(dateObj)); } catch (final ParseException e) { e.printStackTrace(); }

Rastrea este enlace http://developer.android.com/reference/java/text/SimpleDateFormat.html


Prueba esto..

Date dt = new Date(date1); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); String time1 = sdf.format(dt);


Recomiendo usar un DateFormat, como http://developer.android.com/reference/java/text/SimpleDateFormat.html

try { String timeLong = "2013-02-27 06:06:30"; String timeShort = "16:06 AM"; SimpleDateFormat formatLong = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); SimpleDateFormat formatShort = new SimpleDateFormat("hh:mm aa", Locale.US); Log.v("out", formatShort.format(formatLong.parse(timeLong))); Log.v("out", formatShort.format(formatShort.parse(timeShort))); } catch (ParseException e) { e.printStackTrace(); }

Hoy estoy cansado y siento que me falta algo en este código para que pueda enmendarlo más tarde, pero funciona y no (directamente) llama a la clase Date desaprobada.


Tengo respuesta solo haciendo así.

startTime = "2013-02-27 21:06:30"; StringTokenizer tk = new StringTokenizer(startTime); String date = tk.nextToken(); String time = tk.nextToken(); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); SimpleDateFormat sdfs = new SimpleDateFormat("hh:mm a"); Date dt; try { dt = sdf.parse(time); System.out.println("Time Display: " + sdfs.format(dt)); // <-- I got result here } catch (ParseException e) { e.printStackTrace(); }


Date dt = new Date(date1); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); String time1 = sdf.format(dt);

salida 2.00 am

Date dt = new Date(date1); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US); String time1 = sdf.format(dt);

salida 2.00 AM