Мне нужно получить поле AM / PM в объекте даты. Как я могу получить это?
Это мой код.
String startTime ="01:05 PM"; SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); Date st = sdf.parse(startTime);
Вы можете использовать Calendar.
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.
используйте это ..
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; }
Пожалуйста, попробуйте это
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()));
Calendar также можно сделать
Calendar cal = Calendar.getInstance(); cal.setTime(st); String meridiem = cal.getDisplayName(Calendar.AM_PM, Calendar.SHORT, Locale.getDefault())
meridiem теперь равно "PM" на основе вашего кода.
meridiem