2010-02-24 10 views
6

Necesito obtener el campo AM/PM en el objeto de fecha. ¿Cómo puedo obtenerlo?java get date marker field (am/pm)

Este es mi código.

String startTime ="01:05 PM"; 
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); 

Date st = sdf.parse(startTime); 

Respuesta

27

Puede usar Calendar.

Calendar cal = Calendar.getInstance(); 
cal.setTime(st); 
if (cal.get(Calendar.AM_PM) == Calendar.PM) { 
    ... 
} 

Asegúrate de no tener una zona horaria que no coincida cuando hagas esto.

+0

Gracias por la respuesta. – Srinivasan

+0

@cletus hola ¿actualizarás tu código? porque ahora da error en el estudio de Android. –

4

Calendar es probablemente el mejor, pero se puede usar DateFormat, también:

String amPm = new SimpleDateFormat("aa").format(time); 

La advertencia de zona horaria también se aplica aquí.

2

Inténtelo este uso

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss_aa"); 
    Calendar cal = Calendar.getInstance(); 
    Log.d("Time", ""+dateFormat.format(cal.getTime())); 
    int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); 
    System.out.println("time => " + namesOfDays[day-1]+"_"+dateFormat.format(cal.getTime())); 
1

este ..

String getTime(String milliseconds) { 

    String time = ""; 
    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(Long.parseLong(milliseconds)); 

    time = cal.get(Calendar.HOUR) + " : " + cal.get(Calendar.MINUTE); 

    if(cal.get(Calendar.AM_PM)==0) 
     time=time+" AM"; 
    else 
     time=time+" PM"; 

    return time; 

} 
0

Calendar también puede hacer

Calendar cal = Calendar.getInstance(); 
cal.setTime(st); 
String meridiem = cal.getDisplayName(Calendar.AM_PM, Calendar.SHORT, Locale.getDefault()) 

meridiem ahora es igual a "PM", basada en su código.