Date
这是设置日期格式所代表的字母以及所代表的含义
Date date = new Date();//获取当前系统时间
Date date1 = new Date(123456);//通过毫秒数获取时间
//设置输出日期的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd hh:mm:ss E");
String format = sdf.format(date);//将得到的日期转化为一个固定的格式
System.out.println(format);
//将一个字符串转化为日期
String s = "20221116 13:58:12 星期三";
Date parse = sdf.parse(s);//这里要抛出一个转换异常
System.out.println(parset);
System.out.println(sdf.format(parse));//输出的是转化后的日期
Calendar
创建一个日历对象,获取出来的数值需要自行组合使用
Calendar c = Calendar.getInstance();//创建日历类对象
System.out.println("c" + c);//这里输出一大段字符串
//需要程序员自由组合
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get((Calendar.MONTH)+1));//获取的月份需要加一
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
第三代日期对象
LocalDateTime
相对于前两个更加方便
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);//获取当前日期时间
System.out.println(ldt.getYear());
System.out.println(ldt.getMonth());//获取的是英文单词中的月份
System.out.println(ldt.getMonthValue());
System.out.println(ldt.getDayOfMonth());
System.out.println(ldt.getHour());
System.out.println(ldt.getMinute());
System.out.println(ldt.getSecond());
LocalDate now = LocalDate.now();//只输出年月日
LocalTime now1 = LocalTime.now();//只输出时分秒
DateTimeFormatter
程序格式化
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
Instant时间戳
Instant now = Instant.now();
Date date = Date.from(now);//把Instant-->Date
Instant instant = date.toInstant();//把Date-->Instant
日期推进或缩减
方法很多,靠自己理解
LocalDateTime now = LocalDateTime.now();//得到当前时间对象
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");//设置格式化类型
LocalDateTime localDateTime = now.plusDays(10);//10天后
LocalDateTime localDateTime1 = now.minusDays(1);//1天前
System.out.println(dtf.format(localDateTime));//输出格式化后的时间对象
System.out.println(dtf.format(localDateTime1));