java 如何输入date
使用 java.util.Scanner 和 SimpleDateFormat
通过 Scanner 类从控制台读取用户输入的日期字符串,使用 SimpleDateFormat 将其解析为 Date 对象。需要处理 ParseException 异常。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期 (格式: yyyy-MM-dd): ");
String dateString = scanner.nextLine();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = dateFormat.parse(dateString);
System.out.println("输入的日期是: " + date);
} catch (ParseException e) {
System.out.println("日期格式错误,请按照 yyyy-MM-dd 格式输入");
}
}
}
使用 java.time.LocalDate(Java 8 及以上)
Java 8 引入了新的日期时间 API,LocalDate 类更适合处理日期输入。使用 DateTimeFormatter 定义日期格式。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class LocalDateInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期 (格式: yyyy-MM-dd): ");
String dateString = scanner.nextLine();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
LocalDate date = LocalDate.parse(dateString, formatter);
System.out.println("输入的日期是: " + date);
} catch (Exception e) {
System.out.println("日期格式错误,请按照 yyyy-MM-dd 格式输入");
}
}
}
使用 JOptionPane 进行图形界面输入
如果需要通过图形界面输入日期,可以使用 JOptionPane 显示对话框。
import javax.swing.JOptionPane;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JOptionPaneDateInput {
public static void main(String[] args) {
String dateString = JOptionPane.showInputDialog("请输入日期 (格式: yyyy-MM-dd):");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = dateFormat.parse(dateString);
JOptionPane.showMessageDialog(null, "输入的日期是: " + date);
} catch (ParseException e) {
JOptionPane.showMessageDialog(null, "日期格式错误");
}
}
}
处理不同日期格式
如果需要支持多种日期格式,可以定义多个 SimpleDateFormat 或 DateTimeFormatter 并尝试解析。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Scanner;
public class MultipleDateFormats {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期 (支持格式: yyyy-MM-dd 或 MM/dd/yyyy): ");
String dateString = scanner.nextLine();
DateTimeFormatter[] formatters = {
DateTimeFormatter.ofPattern("yyyy-MM-dd"),
DateTimeFormatter.ofPattern("MM/dd/yyyy")
};
LocalDate date = null;
for (DateTimeFormatter formatter : formatters) {
try {
date = LocalDate.parse(dateString, formatter);
break;
} catch (DateTimeParseException ignored) {}
}
if (date != null) {
System.out.println("输入的日期是: " + date);
} else {
System.out.println("无法识别的日期格式");
}
}
}
以上方法涵盖了从控制台和图形界面输入日期的常见场景,并支持不同的日期格式解析。根据具体需求选择适合的方式。






