Ява получить поле маркер даты (утра / вечера) - PullRequest
7 голосов
/ 24 февраля 2010

Мне нужно получить поле AM / PM в объекте даты. Как я могу получить это?

Это мой код.

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

 Date st = sdf.parse(startTime);

Ответы [ 5 ]

33 голосов
/ 24 февраля 2010

Вы можете использовать Calendar.

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

Убедитесь, что у вас нет несоответствия часового пояса при этом.

7 голосов
/ 24 февраля 2010

Календарь, вероятно, лучше, но вы также можете использовать DateFormat:

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

Здесь также действует предупреждение TimeZone.

2 голосов
/ 20 июня 2014

используйте это ..

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;

}
2 голосов
/ 23 ноября 2013

Пожалуйста, попробуйте это

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()));
0 голосов
/ 21 сентября 2016

Calendar также можно сделать

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

meridiem теперь равно "PM" на основе вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...