public static void time (String[] args) {
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
}
}
public class test {
public static void main (String[] args) {
System.out.println("What time is it?");
int time = scan.nextInt();
if(time = date) { // I know it's not correct but you get what I want
System.out.println("That's right");
else {
....
}
}
}
}
所以我基本上希望有人通过输入实际时间来回答这个问题。然后我想把它和当前的确切时间进行比较,并说它是真的还是假的。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class CheckTime {
public static void main(String[] args) {
//Start your scanner
Scanner scan = new Scanner(System.in);
System.out.println("What time is it?");
DateFormat df = new SimpleDateFormat("HH:mm");
Date date = new Date();
//Read the entire line as a String
String time = scan.nextLine();
//Format your datatetim in HH:mm format and compare the strings
if (time.equals(df.format(date))) { // I know it's not correct but you get what I want
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
//Never forget to close your scanner
scan.close();
}
}
我会使用 java.time.LocalTime
类。
public static void main(String[] args) {
String suppliedTimeString = args[0];
LocalTime suppliedTime = LocalTime.parse(suppliedTimeString);
LocalTime currentTime = LocalTime.now().truncatedTo(ChronoUnit.MINUTES);
if (suppliedTime.compareTo(currentTime) == 0) {
System.out.println("That's right");
} else {
System.out.println("That's wrong");
}
}
为了比较日期,你可以使用这个方法。
private static boolean compareDateWithVariance(LocalDateTime date1, LocalDateTime date2, Long varianceInSeconds){
return date1.isAfter(date2.minusSeconds(varianceInSeconds)) && date1.isBefore(date2.plusSeconds(varianceInSeconds)) ;
}
这可以用来解析你的输入到LocalDateTime。
String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
你可以让用户以特定的格式输入日期时间,然后使用老式的等式来进行比较。例如,我使用的是 YYYY-MM-DD HH:MM 在这里,SimpleDateFormat帮助我解析日期。
DateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:mm");
Date dateEntered = sdf.parse(new Scanner(System.in).nextLine());
if(dateEntered.equals(dateReference)) {
...
}
System.out.println("time " + dateEntered.toString());