Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

EEE MMM dd HH:mm:ss Định dạng ngày ZZZ yyyy thành java.sql.Date

    LocalDate date4 = ZonedDateTime
            .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH))
            .toLocalDate();
    java.sql.Date date5 = java.sql.Date.valueOf(date4);

Tôi đang sử dụng các lớp hiện đại trong java.time bưu kiện. Bạn nhận thấy rằng mã không chỉ đơn giản hơn, khi bạn đã làm quen với phong cách viết thông thạo của các lớp mới hơn, nó còn rõ ràng hơn.

Nếu bạn muốn hiện đại 100%, bạn cũng nên kiểm tra xem trình điều khiển MySQL JDBC mới nhất của bạn có chấp nhận LocalDate hay không trực tiếp mà không cần chuyển đổi thành java.sql.Date . Nó nên.

Một vài chi tiết cần lưu ý

  • Nếu bạn cần mã của mình để chạy trên các máy tính nằm ngoài sự kiểm soát của bạn, hãy luôn cung cấp ngôn ngữ cho bộ định dạng của bạn, nếu không chuỗi ngày của bạn không thể được phân tích cú pháp trên máy tính có ngôn ngữ không nói tiếng Anh. Bạn có thể sử dụng Locale.ROOT cho một ngôn ngữ địa phương trung lập (nó nói tiếng Anh).
  • Nếu bạn có thể, hãy tránh các chữ cái viết tắt của múi giờ bằng ba chữ cái. Nhiều người còn mơ hồ. EET thực sự chỉ là một nửa múi giờ vì một số nơi mà nó được sử dụng là vào EEST (giờ mùa hè) bây giờ. Tốt hơn nên sử dụng ID múi giờ dài như Europe/Bucharest hoặc phần bù từ UTC như +02:00 .

Những điểm này vẫn hợp lệ cho dù bạn sử dụng DateTimeFormatter hoặc SimpleDateFormat .

Nếu bạn không thể hoặc không muốn chuyển sang các lớp mới hơn được đề xuất, cách khắc phục mã của bạn là:

    SimpleDateFormat formatnow 
            = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); 
    SimpleDateFormat formatneeded = new SimpleDateFormat("yyyy-MM-dd");

Tôi đang sử dụng chữ thường zzz vì điều này được ghi lại để khớp với tên múi giờ gồm ba chữ cái, tôi biết rằng chữ hoa ZZZ hoạt động quá. Tôi đã thêm ngôn ngữ. Và có lẽ quan trọng nhất, ở định dạng cần thiết, tôi đã thay đổi YYYY (năm tính theo tuần) thành yyyy (năm dương lịch) và DD (ngày trong năm) thành dd (ngày trong tháng). Tất cả những chữ cái đó đều có trong tài liệu .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu cho câu hỏi trong MySQL

  2. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Debian 5 (Lenny)

  3. PHP:Cảnh báo:sort () yêu cầu tham số 1 là mảng, tài nguyên đã cho

  4. 2 cách trả về hàng chứa ký tự chữ và số trong MySQL

  5. JSON_DEPTH () - Tìm độ sâu tối đa của tài liệu JSON trong MySQL