我正在尝试将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);
答案 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”的日期。
希望这对某人有帮助。