java获取日期标记字段(上午/下午)

我需要在日期对象中获取字段AM / PM。 我怎么才能得到它?

这是我的代码。

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

你可以使用Calendar

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

执行此操作时,请确保没有时区不匹配。

日历可能是最好的,但您也可以使用DateFormat:

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

TimeZone警告也适用于此处。

请试试这个

 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())); 

用这个..

 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; } 

Calendar也可以

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

meridiem现在基于你的代码等于“PM”。