对于字符串中的 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()));
我打算在当前时间上加一个小时,我已将其转换为 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()));