JDK8版本之前
//String转换对象格式必须一致 s 和 pattern 的格式
String s = "2020-08-03 15:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse(s);
System.out.println(parse);
//此时打印的是电脑时间的格式
Date d = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String format = sdf1.format(d);
System.out.println(format);
JDK8之后
//public static LocalDateTime parse (准备解析的字符串, 解析格式)
//把一个日期字符串解析成为一个LocalDateTime对象
String dateStr = "2020年07月03日 15:30:00";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(dateStr, pattern);
System.out.println(parse);
// public String format (指定格式) 把一个LocalDateTime格式化成为一个字符串
LocalDateTime localDateTime = LocalDateTime.of(2020, 7, 3, 21, 23, 4);
DateTimeFormatter pattern1 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String s = localDateTime.format(pattern1);
System.out.println(s);
总结:两个版本,只要是给一个字符串,String转对象格式必须一致,否则会 运行错误。而且它们都需要解析!
不是字符串的格式不需要解析,只需要调用formate方法就行。
修改
date.withYear(2019);
间隔
Period.between(日期1, 日期2); // 年月日的间隔
Duration.between(日期1, 日期2); // 精度更高