2010-02-24 20 views
6

AM/PM tarih nesnesini alana almam gerekiyor. Onu nasıl alabilirim?java get date marker alanı (am/pm)

Bu benim kodum.

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

Date st = sdf.parse(startTime); 

cevap

27

Calendar kullanabilirsiniz.

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

Bunu yaparken saat dilimi uyuşmazlığınızın olmadığından emin olun.

+0

Cevabınız için teşekkür ederiz. – Srinivasan

+0

@cletus Merhaba kodunuzu güncelleştirir misiniz? çünkü şimdi android stüdyoda hata veriyor. –

4

Takvim muhtemelen en iyi, ama çok DATEFORMAT, kullanabilirsiniz: TimeZone uyarı burada da geçerlidir

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

.

2

bu

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

kullanacağım deneyin bu ..

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 da

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

meridiem şimdi koduna göre "PM" eşittir yapabilirsiniz.