Java-时间获取,格式 转换和解析
常用的有关时间的类有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 - 格式转化和解析
格式化和解析都需要指定格式,具体书写可参考文档
需要特别注意的是:解析时设定的格式要与字符串一致!!!!
格式化
格式化可以选择格式日期对象,或者时间的毫秒值
/* 格式化时间: --将日期时间对象或者时间毫秒值格式化成指定格式 */ //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);