**
**
1、format方法可以把Date类型转换成特定格式的String类型,如果Date类型和定义的SimpleDateFormat长度不一致会自动在后面补充0
//自定义需要输出的String格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); //输出“20230317104202” String nowDate = sdf.format(new Date()); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //输出“2023-03-17 10:46:07” String nowDate2 = sdf2.format(new Date());
2. parse方法可以把String型的字符串转换成特定格式的date类型,使用parse时字符串长度要和定义的SimpleDateFormat对象长度一致
void test() { SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); try { Date date =df.parse("2016-2-18"); //Thu Feb 18 00:00:00 CST 2016 System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } }
下面test2的例子,由于位数不同,会报异常Unparseable date: “2016-02-18 00:00:00”
void test2() { DateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); // String转Date String str = "2016-02-18 00:00:00"; try { Date date2 = format2.parse(str); System.out.println(date2); } catch (ParseException e) { e.printStackTrace(); } }
下方是正确的用
void test3() { DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // String转Date String str = "2016-02-18 00:00:00"; try { Date date2 = format2.parse(str); //Thu Feb 18 00:00:00 CST 2016 System.out.println(date2); } catch (ParseException e) { e.printStackTrace(); } }
3.将Date类型转换为yyyy-mm-dd的Date形式或将String类型转换为yyyy-mm-dd的Date形式
void test4() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(currentTime); Date date = java.sql.Date.valueOf(dateString); //2023-03-17 System.out.println(date); }
void test5() { String dateString = "2023-03-17"; Date date1 = java.sql.Date.valueOf(dateString); //2023-03-17 System.out.println(date1); }
日期缺位数的话会自动补全
void test6() { String dateString = "2023-3-7"; Date date1 = java.sql.Date.valueOf(dateString);; System.out.println(date1); } ``