目录
一.Date类和SimpleDateFormat类:格式化和解析日期
1.format()和parse()
2.SimpleDateFormat参数
①.yyyy-MM-dd HH-mm-ss 、Y、hh
②.E、D、F、W、w
③.a、K、k、z、Z
二.Calendar类
1.创建 Calendar 对象
2.Calendar get方法字段
三.第三代日期类
1.LocalDate、LocalTime、LocalDateTime类
①.now()
②.获取单个日期和时间的方法(年月日、时分秒)
③.LocalDateTime 类之 plus 和 minus
2.DateTimeFormatter类
3.Instant类
一.Date类和SimpleDateFormat类:格式化和解析日期
1.format()和parse()
parse()需要弹出一个异常:throws ParseException,不然会报错
Date i = new Date();
// 1.输出当前时间
System.out.println("1.:t" + i);
// 2.getTime() 获取1970.1.1到现在的毫秒数
System.out.println("2.:t" + i.getTime());
// 创建 SimpleDateFormat 对象并写入相应参数
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 3.format()对当前时间进行格式化
System.out.println("3.:t" + sdf.format(i));
// 4.parse() 把格式化的时间字符串转换为原来的格式
System.out.println("4.:t" + sdf.parse(sdf.format(i)));
输出:
2.SimpleDateFormat参数
| SimpleDateFormat 常用参数 | SimpleDateFormat 不常用参数 | ||
| 格式 | 释义 | 格式 | 释义 |
| YYYY或yyyy | 年 | E | 今天星期几 |
| MM | 月 | D | 一年中第几天 |
| dd | 日 | F | 一月中第几个星期 |
| HH(24小时制) | 时 | W | 一月中第几个星期 |
| hh(12小时制) | 时 | w | 一年中第几个星期 |
| mm | 分 | a | 上午 / 下午 |
| ss | 秒 | K(12小时制) | 今天第几个小时 |
| SSS | 毫秒 | k(24小时制) | 今天第几个小时 |
| z | 时区 | Z | 时区 |
①.yyyy-MM-dd HH-mm-ss 、Y、hh
Date i = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("Y");
SimpleDateFormat sdf3 = new SimpleDateFormat("hh");
System.out.println("1. yyyy-MM-dd HH-mm-ss:t" + sdf1.format(i));
System.out.println("2. Y:t" + sdf2.format(i));
System.out.println("3. hh:t" + sdf3.format(i));
输出:
②.E、D、F、W、w
Date i = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("E");
SimpleDateFormat sdf2 = new SimpleDateFormat("D");
SimpleDateFormat sdf3 = new SimpleDateFormat("F");
SimpleDateFormat sdf4 = new SimpleDateFormat("W");
SimpleDateFormat sdf5 = new SimpleDateFormat("w");
System.out.println("1. E:t" + sdf1.format(i));
System.out.println("2. D:t" + sdf2.format(i));
System.out.println("3. F:t" + sdf3.format(i));
System.out.println("4. W:t" + sdf4.format(i));
System.out.println("5. w:t" + sdf5.format(i));
输出:
③.a、K、k、z、Z
Date i = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("a");
SimpleDateFormat sdf2 = new SimpleDateFormat("K");
SimpleDateFormat sdf3 = new SimpleDateFormat("k");
SimpleDateFormat sdf4 = new SimpleDateFormat("z");
SimpleDateFormat sdf5 = new SimpleDateFormat("Z");
System.out.println("1. a:t" + sdf1.format(i));
System.out.println("2. K:t" + sdf2.format(i));
System.out.println("3. k:t" + sdf3.format(i));
System.out.println("4. z:t" + sdf4.format(i));
System.out.println("5. Z:t" + sdf5.format(i));
输出:
二.Calendar类
Calendar类是一个抽象类
1.创建 Calendar 对象
// 创建 Calendar 对象
Calendar i = Calendar.getInstance();
// 输出 i 返回 Calendar 大部分字段对应的数值
System.out.println(i);
// getTime 输出时间
System.out.println(i.getTime());//输出:Fri Dec 17 11:10:44 CST 2021
2.Calendar get方法字段
| Calendar常用字段 | |
| 格式 | 释义 |
| YEAR | 年 |
| MONTH | 月 |
| DAY_OF_MONTH | 日 |
| HOUR | 时 |
| MINUTE | 分 |
| SECOND | 秒 |
通过get方法来获取
Calendar i = Calendar.getInstance();
//年
System.out.print(i.get(Calendar.YEAR) + "-");
//月,月份是从0开始的,所以要加1
System.out.print(i.get(Calendar.MONTH) + 1 + "-");
//日
System.out.print(i.get(Calendar.DAY_OF_MONTH) + " ");
//时
System.out.print(i.get(Calendar.HOUR) + ":");
//分
System.out.print(i.get(Calendar.MINUTE) + ":");
//秒
System.out.print(i.get(Calendar.SECOND));
输出:
三.第三代日期类
1.LocalDate、LocalTime、LocalDateTime类
①.now()
//输出日期和时间
LocalDateTime i1 = LocalDateTime.now();
System.out.println(i1);
//输出日期
LocalDate i2 = LocalDate.now();
System.out.println(i2);
//输出时间
LocalTime i3 = LocalTime.now();
System.out.println(i3);
①.now()
//输出日期和时间
LocalDateTime i1 = LocalDateTime.now();
System.out.println(i1);
//输出日期
LocalDate i2 = LocalDate.now();
System.out.println(i2);
//输出时间
LocalTime i3 = LocalTime.now();
System.out.println(i3);
输出:
②.获取单个日期和时间的方法(年月日、时分秒)
LocalDateTime i = LocalDateTime.now();
//年
System.out.print(+ i.getYear() + "-");
//月
System.out.print(i.getMonthValue() + "-");
//日
System.out.print(i.getDayOfMonth() + " ");
//时
System.out.print(i.getHour() + ":");
//分
System.out.print(i.getMinute() + ":");
//秒
System.out.print(i.getSecond());
输出:
③.LocalDateTime 类之 plus 和 minus
plus:查看增加一段时间后的时间
minus:查看减少一段时间后的时间
LocalDateTime l = LocalDateTime.now();
//原来的
System.out.println(l);
//加减年
System.out.print("1.加:" + l.plusYears(1)); System.out.println(" 减:" + l.minusYears(1));
//加减月
System.out.print("2.加:" + l.plusMonths(1)); System.out.println(" 减:" + l.minusMonths(1));
//加减日
System.out.print("3.加:" + l.plusDays(1)); System.out.println(" 减:" + l.minusDays(1));
//加减时
System.out.print("4.加:" + l.plusHours(1)); System.out.println(" 减:" + l.minusHours(1));
//加减分
System.out.print("5.加:" + l.plusMinutes(60)); System.out.println(" 减:" + l.minusMinutes(60));
//加减秒
System.out.print("6.加:" + l.plusSeconds(3600)); System.out.println(" 减:" + l.minusSeconds(3600));
输出:
2.DateTimeFormatter类
类似SimpleDateFormat,用于格式化
LocalDateTime l = LocalDateTime.now();
DateTimeFormatter i = DateTimeFormatter.ofPattern("Y-M-d H:m:s");
System.out.println(i.format(l));
输出:
3.Instant类
时间线上的一个瞬时点,可以和Date相互转化
Instant i = Instant.now();
System.out.println(i);
// Instant --》 Date
Date d = Date.from(i);
System.out.println(d);
// Date --》 Instant
Instant instant = d.toInstant();
System.out.println(instant);
输出:



