Для этого используйте Calendar#add
.Смущает, что вы можете использовать его как для сложения, так и для вычитания.
final Calendar calendar = Calendar.getInstance(); //A calendar set to the current time
calendar.add(Calendar.HOUR_OF_DAY, 1); //Add one hour
calendar.add(Calendar.HOUR_OF_DAY, -1); //Subtract one hour
Когда дело доходит до времени печати, по умолчанию в версиях API <24 используется значение <a href="https://developer.android.com/reference/java/text/SimpleDateFormat" rel="nofollow noreferrer">DateFormat
.Итак, вместо того, чтобы пытаться определить это самостоятельно:
final SimpleDateFormat format = new SimpleDateFormat("HH:mm"); //hours and minutes, 24hr clock
textView.setText(format.format(calendar.getTime());
Однако, обратите внимание, что есть проблемы с SimpleDateFormat
, особенно когда речь идет о многопоточности.Как предложил Оле В.В. в комментариях, вам следует рассмотреть возможность использования библиотеки ThreeTenABP
.
Если вы ориентируетесь на API 24+, вы можете использовать дополнения Java 8вокруг времени в пакете java.time
, например Instant
и DateTimeFormatter