Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để phân tích cú pháp Ngày từ Chuỗi theo định dạng:dd / MM / yyyy thành dd / MM / yyyy trong java?

Gói java.text cung cấp một lớp có tên SimpleDateFormat được sử dụng để định dạng và phân tích cú pháp ngày tháng theo cách bắt buộc (cục bộ).

Một trong các hàm tạo của lớp này chấp nhận giá trị Chuỗi đại diện cho định dạng ngày tháng mong muốn và các hàm tạo đối tượng SimpleDateFormat .

Định dạng () phương thức của lớp này chấp nhận một java.util.Date đối tượng và trả về một chuỗi ngày / giờ ở định dạng được đại diện bởi đối tượng hiện tại.

Do đó, để phân tích cú pháp Chuỗi ngày thành một định dạng ngày khác -

  • Lấy chuỗi ngày đầu vào.

  • Chuyển đổi nó thành đối tượng java.util.Date.

  • Khởi tạo lớp SimpleDateFormat bằng cách chuyển định dạng (mới) mong muốn dưới dạng chuỗi vào phương thức khởi tạo của nó.

  • Gọi phương thức format () bằng cách chuyển đối tượng Date đã thu được ở trên làm tham số.

Ví dụ

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 {
      //Instantiating the SimpleDateFormat class
      SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
      //Parsing the given String to Date object
      Date date = formatter.parse(dob);
      System.out.println("Date object value: "+date);
      return date;
   }
   public static void main(String args[]) throws ParseException {
      //Reading name and date of birth from the user
      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();
      //Converting String to Date
      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;
      }
   }
}

Đầu ra

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