Как сравнить текущее локальное время системы с датой и временем входной строки

#java #datetime #java-time #localdatetime #datetime-comparison

#Ява #дата и время #java-время #местное время #сравнение даты и времени

Вопрос:

Я пытаюсь сравнить время и дату текущей системы с вводимой строкой времени и даты. Я использую, LocalDateTime.now() чтобы получить текущее время системы, а также DateTimeFormatter форматирую его как dd-ММ-гггг ЧЧ:мм шаблон

 static DateTimeFormatter frmt = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm"); static LocalDateTime time = LocalDateTime.now();  

Вот что у меня есть:

 System.out.print("Enter the Appointment new Date and Time as dd-mm-yyyy hh:mm : "); String dateAndTime = input.nextLine();  if (//dateAndTime is before or equals the current system time) {  System.out.println("The new date and time should be after the current time"); } else {  System.out.println("Appointment has been updated"); }  

Комментарии:

1. Проанализируйте dateAndTime до a LocalDateTime , а затем сравните его с time использованием time.compareTo(...) .

2. Я проанализировал это, как же мне тогда сравнивать?

3. LocalDateTime есть compareTo способ.

Ответ №1:

Предполагая, что вы проанализировали входные данные LocalDateTime , вы можете сделать это следующим образом:

 if (parsedDateTime.isAfter(LocalDateTime.now())) {  System.out.println("Appointment has been updated"); } else {  System.out.println("The new date and time should be after the current time"); }  

Имейте в виду, что isAfter это вернет значение false, если parsedDateTime и LocalDateTime.now() будут точно такими же.