Как получить 2 цифры в LocalDateTime.now().minusMinutes(1).getMinute()?

Пишу автотест Java+Cucumber+Gherkin, в котором есть такой шаблон в MyTemplate.java:

template.getTemplate().put("<МИНУС_1_МИНУТА>", arg -> 
String.valueOf(LocalDateTime.now().minusMinutes(1).getMinute()));

Сценарий с данным шаблоном отрабатывает корректно только если, время >10 минут любого часа. Подскажите, как мне получить 2 числа для минут? Чтобы работало с <=0 до 10 минут.

ожидалось: 21:2, фактически: 21:02

Сам запрос: | message | Установить будильник на <ЧАСЫ> <МИНУС_1_МИНУТА> |


Ответы (1 шт):

Автор решения: Nowhere Man

"Две цифры" следует получать при преобразовании числа в строку, например при помощи форматирования, то есть, вместо String.valueOf достаточно использовать String.format для минут:

System.out.println(String.format("%02d", LocalDateTime.now().minusMinutes(1).getMinute())); // -> 04

Или же можно отформатировать время при помощи форматтера:

DateTimeFormatter mins = DateTimeFormatter.ofPattern("mm");
System.out.println(LocalDateTime.now().minusMinutes(1).format(mins)); // -> 04
→ Ссылка