LocalDateTime和Date日期格式化,字符串转时间,日期转化
加深对时间操作的理解,最怕的就是操作时间,还有日历类,到现在都不大会,感觉最难的就是涉及到时间转化的操作
public static void main(String[] args) throws ParseException {
//yyyy-MM-dd'T'HH:mm:ss.SSSZ 对应格式在SimpleDateFormat类源码中有
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String format1 = dateFormat.format(new Date());
System.out.println("format1 = " + format1);//format1 = 2023-01-13T15:20:25.233+0800
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//时间转字符串(日期格式化)
//将日期格式化所以参数是日期
String format = sdf.format(new Date());
System.out.println("format = " + format);//format = 2023/01/13 15:20:25
//Date类型和LocalDateTime的日期格式化操作类似,都是格式化类调用format()方法格式日期
//但字符串转时间不同,Date还是使用的格式化类,而LocalDateTime类自己提供了parse()转化方法
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS");
String format2 = formatter.format(LocalDateTime.now());
System.out.println("format2 = " + format2);//format2 = 2023/01/13 15:20:25.285
//字符串转时间(可以会有异常)
//将字符串转时间所以参数是字符串,2022-1-3居然会出异常,斜杠恐怖如斯
Date parse = sdf.parse("2022/1/3 21:12:23");//Mon Jan 03 21:12:23 CST 2022
System.out.println("parse = " + parse);//Fri Jan 13 14:31:19 CST 2023
System.out.println(new Date());//Fri Jan 13 15:20:25 CST 2023
System.out.println(LocalDate.now());//2023-01-13
System.out.println(LocalTime.now());//14:49:37.444
//LocalDateTime就是两者拼接的
//private final LocalDate date;
//private final LocalTime time;
System.out.println(LocalDateTime.now());//2023-01-13T14:31:19.419
int second = LocalDateTime.now().getSecond();
System.out.println("second = " + second);
//传入的字符串有严格的格式,鼠标悬停在parse()方法上,方法介绍params里有正确的格式
LocalDateTime now = LocalDateTime.parse("2023-01-13T14:31:19.419");
System.out.println("now = " + now);//now = 2023-01-13T14:31:19.419
}