如何从字符串中获取我现在的12小时制从现在开始的一个小时的时间?

时间:2019-05-03 02:01:52

标签: android android-calendar android-timepicker android-date

我计划将当前时间增加一个小时,我将其转换为12小时格式。只是不确定如何去做。我想保持分钟数不变,只想增加一个小时,比如说时间是11:59 am->我想显示12:59 pm,或者如果时间是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 个答案:

答案 0 :(得分:1)

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