" EEE MMM dd HH:mm:ss ZZZ yyyy"日期格式为java.sql.Date

时间:2017-05-12 09:02:06

标签: java mysql sql date

我正在尝试将EEE MMM dd HH:mm:ss ZZZ yyyy转换为YYYY-MM-DD格式,因此我可以将其插入MySQL数据库。我没有收到任何错误,但插入我的数据库的日期是错误的,每行都是一样的......

 String date = Sat Mar 04 09:54:20 EET 2017;
 SimpleDateFormat formatnow = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZ yyyy"); 
 SimpleDateFormat formatneeded=new SimpleDateFormat("YYYY-MM-DD");

 java.util.Date date1 = (java.util.Date)formatnow.parse(date);
 String date2 = formatneeded.format(date1);
 java.util.Date date3= (java.util.Date)formatneeded.parse(date2);


 java.sql.Date sqlDate = new java.sql.Date( date3.getTime() );
 pst.setDate(1, sqlDate);

1 个答案:

答案 0 :(得分:0)

我知道这个问题与java.sql.Date有关,但作为附加信息,如果要将日期转换为LocalDate,则下面的代码可能会有所帮助:

private LocalDate getLocalDate(String date){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd hh:mm:ss Z yyyy", Locale.getDefault());
        return LocalDate.parse(date, formatter);
    }

一旦获得LocalDate,就可以将其转换为任何格式。正如问题所预期的那样,然后只需在LocalDate对象上调用toString()。

    LocalDate curr = LocalDate.now();
    System.out.println(curr.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    System.out.println(curr.toString());

它将显示类似“ 2019-11-20”的日期。

希望这对某人有帮助。