Dùng java.text.SimpleDateFormat để parse String → Date, rồi format Date → String theo format mới.
Quy trình
- Parse String input thành
java.util.DatedùngSimpleDateFormat.parse(). - Tạo
SimpleDateFormatmới với pattern đầu ra mong muốn. - Dùng
format(date)để ra String kết quả.
Ví dụ hoàn chỉnh
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateFormatConvert {
public static Date parseDate(String input, String pattern) throws ParseException {
return new SimpleDateFormat(pattern).parse(input);
}
public static void main(String args[]) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập tên: ");
String name = sc.next();
System.out.print("Nhập ngày sinh (dd-MM-yyyy): ");
String dob = sc.next();
// Parse input
Date date = parseDate(dob, "dd-MM-yyyy");
System.out.println("Date object: " + date);
// Chọn format đầu ra
System.out.println("Chọn format: a) MM-dd-yyyy b) dd-MM-yyyy c) yyyy-MM-dd");
char ch = sc.next().charAt(0);
String outPattern = switch (ch) {
case 'a' -> "MM-dd-yyyy";
case 'b' -> "dd-MM-yyyy";
case 'c' -> "yyyy-MM-dd";
default -> "dd-MM-yyyy";
};
String formatted = new SimpleDateFormat(outPattern).format(date);
System.out.println("Kết quả (" + outPattern + "): " + formatted);
}
}
Kết quả
Nhập tên: Krishna Nhập ngày sinh (dd-MM-yyyy): 26-09-1989 Date object: Tue Sep 26 00:00:00 IST 1989 Chọn format: a) MM-dd-yyyy b) dd-MM-yyyy c) yyyy-MM-dd a Kết quả (MM-dd-yyyy): 09-26-1989
Java 8+: Date Time API (Khuyên dùng)
SimpleDateFormat không thread-safe, lỗi thời. Dùng java.time:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class ModernDateFormat {
public static void main(String[] args) {
String input = "26-09-1989";
DateTimeFormatter inFmt = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate date = LocalDate.parse(input, inFmt);
DateTimeFormatter outFmt = DateTimeFormatter.ofPattern("MM-dd-yyyy");
String output = date.format(outFmt);
System.out.println(output); // 09-26-1989
}
}
Ưu điểm java.time: Immutable, thread-safe, API rõ ràng, hỗ trợ timezone, duration, period...