Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

EEE MMM dd HH:mm:ss ZZZ yyyy format tanggal ke 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);

Saya menggunakan kelas modern di java.time kemasan. Anda perhatikan bahwa kodenya tidak hanya lebih sederhana, setelah Anda mengenal gaya penulisan yang lancar dari kelas yang lebih baru, itu juga lebih jelas.

Jika Anda ingin menjadi 100% modern, Anda juga harus memeriksa apakah driver MySQL JDBC terbaru Anda tidak akan menerima LocalDate langsung tanpa konversi ke java.sql.Date . Seharusnya.

Beberapa detail yang perlu diperhatikan

  • Jika Anda memerlukan kode untuk dijalankan di komputer di luar kendali Anda, selalu berikan lokal ke formatter Anda, atau string tanggal Anda tidak dapat diuraikan di komputer dengan lokal yang tidak berbahasa Inggris. Anda dapat menggunakan Locale.ROOT untuk lokal netral lokal (berbahasa Inggris).
  • Jika bisa, hindari singkatan zona waktu tiga huruf. Banyak yang ambigu. EET benar-benar hanya setengah zona waktu karena beberapa tempat di mana digunakan adalah pada EEST (waktu musim panas) sekarang. Lebih baik menggunakan ID zona waktu yang lama seperti Europe/Bucharest atau offset dari UTC seperti +02:00 .

Poin ini valid tidak masalah jika Anda menggunakan DateTimeFormatter atau SimpleDateFormat .

Jika Anda tidak dapat atau tidak ingin beralih ke kelas baru yang disarankan, perbaikan kode Anda adalah:

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

Saya menggunakan huruf kecil zzz karena ini didokumentasikan agar cocok dengan nama zona waktu tiga huruf, saya tahu huruf besar ZZZ bekerja juga. Saya telah menambahkan lokal. Dan mungkin yang paling penting, dalam format yang diperlukan saya telah mengubah YYYY (tahun berdasarkan minggu) menjadi yyyy (tahun kalender) dan DD (hari dalam setahun) hingga dd (hari bulan). Semua huruf tersebut ada di dokumentasi .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengganti Nama Database di MySQL

  2. Bagaimana cara mengambil versi saat ini dari sistem manajemen basis data MySQL (DBMS)?

  3. Peningkatan Otomatis setelah dihapus di MySQL

  4. Memilih server pencarian teks lengkap yang berdiri sendiri:Sphinx atau SOLR?

  5. PHP Peringatan:mysqli_connect():(HY000/2002):Koneksi ditolak