常用的有关时间的类有Date、LocalDateTime、LocalDate、LocalTime、Instant、Calendar、SimpleDateFormat
目录
获取
以下是获取各类的对象方式和输出,可以根据需要获取相应的对象。Date类代表当前所在系统的日期时间信息;Instant、LocaData*是JDK8新增的类,Instant是Date的升级版; 需要特别注意的是,Calendar是可变日期对象,一旦修改后对其对象本身表示的时间也会产生变化
//获取Date对象并输出
Date date = new Date();
System.out.println("date =" + date);
//获取LocalDate并输出
LocalDate localDate = LocalDate.now();
System.out.println("localDate =" + localDate);
//获取LocalTime并输出
LocalTime localTime = LocalTime.now();
System.out.println("LocalTime.now = " + localTime);
//获取LocalDateTime并输出
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDateTime = " + localDateTime);
//获取Instant并输出
Instant instant = Instant.now();
System.out.println("instant = " + instant);
//获取系统此刻日历对象
Calendar calendar = Calendar.getInstance();
System.out.println("calendar = " + calendar);
SimpleDateFormat - 格式转化和解析
格式化和解析都需要指定格式,具体书写可参考文档SimpleDateFormat (Java SE 17 & JDK 17)
需要特别注意的是:解析时设定的格式要与字符串一致!!!!
格式化
格式化可以选择格式日期对象,或者时间的毫秒值
/*
格式化时间:
--将日期时间对象或者时间毫秒值格式化成指定格式
*/
//1.获取日期对象
Date date = new Date();
//2.指定格式化格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE a");
//3.1 格式化日期对象
String stringDate = sdf.format(date);
System.out.println("格式化日期对象结果: " + stringDate);
//3.格式化时间毫秒值
long time = date.getTime();
stringDate = sdf.format(time);
System.out.println("格式化时间毫秒值结果: " + stringDate);
解析
/*
解析字符串时间至时间对象
注意字符串和解析格式需要匹配!!!!
*/
//1.指定格式化格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2.将参照 字符串时间 化为 时间对象
String dateStr = "2024年06月09日 15:12:17";
Date date = sdf.parse(dateStr);
System.out.println( "字符串时间转时间对象:" + date);
常用API
Date
Calendar
SimpleDateFormat![](https://img-blog.csdnimg.cn/e82f655ace3542f2af705a16d006f3b8.png)