java.text包提供了一个名为SimpleDateFormat的类,该类用于以必需的方式(本地)格式化和解析日期。
此类的构造函数之一接受表示所需日期格式的String值,并接受SimpleDateFormat对象。
此类的format()方法接受一个java.util.Date对象,并以当前对象表示的格式返回日期/时间字符串。
因此,要将日期字符串解析为另一种日期格式-
获取输入日期字符串。
将其转换为java.util.Date对象。
通过将所需的(新)格式作为字符串传递给其构造函数来实例化SimpleDateFormat类。
format()
通过传递上面获得的Date对象作为参数来调用该方法。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class FormattingDate { public static Date StringToDate(String dob) throws ParseException { //实例化SimpleDateFormat类 SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); //将给定的String解析为Date对象 Date date = formatter.parse(dob); System.out.println("Date object value: "+date); return date; } public static void main(String args[]) throws ParseException { //从用户读取姓名和出生日期 Scanner sc = new Scanner(System.in); System.out.println("Enter your name: "); String name = sc.next(); System.out.println("Enter your date of birth (dd-MM-yyyy): "); String dob = sc.next(); //将字符串转换为日期 Date date = FormattingDate.StringToDate(dob); System.out.println("Select format: "); System.out.println("a: MM-dd-yyyy || b: dd-MM-yyyy || c: yyyy-MM-dd "); char ch = sc.next().toCharArray()[0];; switch (ch) { case 'a': System.out.println("Date in the format: MM-dd-yyyy"); System.out.println(new SimpleDateFormat("MM-dd-yyyy").format(date)); break; case 'b': System.out.println("Date in in the format: dd-MM-yyyy"); System.out.println(new SimpleDateFormat("dd-MM-yyyy").format(date)); break; case 'c': System.out.println("Date in the format: yyyy-MM-dd"); System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date)); break; default: System.out.println("Model not found"); break; } } }
输出结果
Enter your name: Krishna Enter your date of birth (dd-MM-yyyy): 26-09-1989 Date object value: Tue Sep 26 00:00:00 IST 1989 Select format: a: MM-dd-yyyy || b: dd-MM-yyyy || c: yyyy-MM-dd a Date in the format: MM-dd-yyyy 09-26-1989