Date类(一代)
Date用于获取当前时间。属于第一代日期类
Date date = new Date();
//将系统当前毫秒值转化为Date类型
Date date = new Date(System.currentTiemMillis);
//转化为yyyy-MM-dd格式字符串
String format = new SimpleDateFormat("yyyy-MM-dd").format(date);
SimpleDateFormat 格式化日期
用于String类型、Date类型相互转换
DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//simpleDateFormat.format(Date date),将Date类型参数转换为指定格式
//simpleDateFormat.parse(String str),将String类型参数转换为Date日期格式,格式为Tue Sep 06 15:13:38 CST 2022
在SimpleDateFormat中,被定义的字母会被特殊处理替换成相应的日期格式,其他的字符串会原样输出。
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
Calendar类(二代)
该类在java util包下,提供不同日期格式的处理。属于第二代日期类
Calendar calendar = new GregorianCalendar();
//Calendar calendar = Calendar.getInstance效果相同
System.out.println("YEAR = " + calendar.get(Calendar.YEAR));
// Calendar.YEAR 获取年份
// Calendar.MONTH 获取当前月份 从0开始,0代表一月,1代表二月,以此类推
// Calendar.DATE 获取当前日期 也可以使用DAY_OF_MONTH
// Calendar.HOUR_OF_DAY 获取当前时 24小时进制
// Calendar.MINUTE 获取当前分
// Calendar.SECOND 获取当前秒
// Calendar.WEEK_OF_MONTH 获取今天是这个月的第几个星期
// Calendar.DAY_OF_WEEK 获取今天是星期几 1表示星期天,2表示星期一,以此类推
//----------有参构造----------
//有参构造(年月日 时分秒),月份从0开始
Calendar calendar1 = new GregorianCalendar(2022,8,6,14,44,52);
//根据set方法设置参数
calendar1.set(Calendar.YEAR,2020);
//----------Calendar与Date相互转换----------
Date now = calendar.getTime();
calendar.setTime(now);
//----------Calendar日期计算以及判断----------
//判断是否在calendar1之后(前)
calendar.after(calendar1);
calendar.before(calendar1);
//增加年份 月日时分秒同理
calendar.add(Calendar.YEAR,-10);
LocalDateTime(三代)
JDK8加入LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocalDateTime(日期时间/年月日时分秒),属于第三代日期类。
Calendar类被弃用。
//获取当前时间,LocalDate,LocalTime用法一样
LocalDateTime dateTime = LocalDateTime.now();
//使用DateTimeFormatter 对象来进行格式化
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//方式一
String format = dateTimeFormatter.format(dateTime);
//方式二
String format2 = dateTime.format(dateTimeFormatter);
System.out.println("年=" + dateTime.getYear());
System.out.println("月=" + dateTime.getMonth());
System.out.println("月=" + dateTime.getMonthValue());
System.out.println("日=" + dateTime.getDayOfMonth());
System.out.println("时=" + dateTime.getHour());
System.out.println("分=" + dateTime.getMinute());
System.out.println("秒=" + dateTime.getSecond());