2010-02-24 11 views
6

Ho bisogno di ottenere il campo AM/PM in oggetto data. Come posso averlo?java get campo indicatore data (am/pm)

Questo è il mio codice.

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

Date st = sdf.parse(startTime); 

risposta

27

È possibile utilizzare uno Calendar.

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

Assicurarsi di non avere un disallineamento di fuso orario quando si esegue questa operazione.

+0

Grazie per la risposta. – Srinivasan

+0

@cletus hi aggiornerai il tuo codice ?? perché ora dà errore in Android Studio. –

4

Calendar è probabilmente la cosa migliore, ma si potrebbe usare DateFormat, troppo:

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

L'avvertimento TimeZone vale anche qui.

2

Si prega di provare questo

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

uso questo ..

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 può anche fare

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

meridiem ora è uguale a "PM", sulla base di codice.