Как я могу получить время в часе для моего 12-часового формата времени в строке? - PullRequest
0 голосов
/ 03 мая 2019

Я планирую добавить час к текущему времени, которое я преобразовал в 12-часовой формат. Просто не знаю, как это сделать. Я хочу, чтобы время оставалось неизменным, просто хочу добавить час, скажем, время 11:59 -> Я хотел бы показать 12:59, или, если время 5:20, я хотел бы показать 6:20 и так далее. Вот мой код:

if (mDate.get(Calendar.AM_PM) == Calendar.AM)
            am_pm = "AM";
        else if (mDate.get(Calendar.AM_PM) == Calendar.PM)
            am_pm = "PM";


        String strHrsToShow = (mDate.get(Calendar.HOUR) == 0) ? "12" : mDate.get(Calendar.HOUR) + "";
        String strMinsToShow = (mDate.get(Calendar.MINUTE)) < 10 ? "0" + mDate.get(Calendar.MINUTE) : "" + mDate.get(Calendar.MINUTE);

        mRegisterGuestStartTime.setText(String.format("%s:%s %s", strHrsToShow, strMinsToShow, am_pm));

Есть идеи, как это сделать? заранее спасибо!

1 Ответ

1 голос
/ 03 мая 2019

mDate это Calendar объект, который я предполагаю.Если да, почему бы вам не использовать Calendar.add(Calendar.HOUR, 1)?Делая это в методе String, вы теряете точность значения даты / времени.Вы можете использовать SimpleDateFormat для последующего форматирования Календаря

    // add an hour to the date
    mDate.add(Calendar.HOUR, 1);

    // prepare datetime formatter, sample output: "11:35 AM"
    SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm a");
    mRegisterGuestStartTime.setText(timeFormat.format(mDate.getTime()));
...