对于字符串中的 12 小时时间格式,如何获取从现在开始一小时后的时间?

How do I get the time an hour from now for my 12 hour time format in string?

我打算在当前时间上加一个小时,我已将其转换为 12 小时格式。只是不知道该怎么做。我想保持分钟不变,只想增加一个小时,比如时间是 11:59am -> 我想显示 12:59pm,或者如果时间是 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));

有什么想法吗?提前致谢!

mDate 是我假设的 Calendar 对象。如果是,为什么不使用 Calendar.add(Calendar.HOUR, 1)?以 String 操作方式进行操作会丢失 date/time 值的精度。之后您可以使用 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()));