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";
En Android también tienes DateFormat
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