Date
-
无参构造
Date data = new Date(); // 返回的是1970.1.1 8.00到现在的毫秒数
-
有参构造
Date date = new Date(24*60*60*1000); // 1970.1.2 8.00 // 毫秒数作为参数,返回的是1970.1.1 8.00过了多久之后的时间
方法
getTime()
获取当前的毫秒数
setTime()
设置时间
Date data = new Data();
data.getTime();
// 接受一个long类型的毫秒数
data.setTime(0L);
SimpleDateFormat (8之前)
SimpleDateFormat sdf = new simpleDateFormat();
SimpleDateFormat sdf = nesw simpleDateFormat("yyyy-MM-dd");
-
格式化 - format()
-
解析 - parse()
格式一定要一样
Date data = new Data();
SimpleDateFormat sdf = new simpleDateFormat("yyyy-MM-dd");
sdf.format(data); // 2022-08-03
sdf.parse("2021-01-01") // Wed Jan 01 00:00:00 CsT 2021
sdf.parse("2021-01-01").getTime(); // 返回毫秒数
DateTimeFormatter(8之后)
时间格式化
// 将指定的时间按照一定的格式输出 2020-01-01T01:01:01
LocalDateTime of = LocalDateTime.of(2020,1,1,1,1,1);
// 时间格式
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(of.format(dateTimeFormatter)); // 2020-01-01 01:01:01
时间解析
String s = "2020-11-12 13:14:15";
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parse = LocalDateTime.parse(s, pattern);
System.out.println(parse); // 2020-11-12T13:14:15
增加时间
时间增加
// 假定
String st = "2020年11月11日 00:00:00";
// 创建对应时间格式
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
// 时间解析
LocalDateTime localDateTime = LocalDateTime.parse(st,pattern);
// 时间增加 -- 可以接收负数
LocalDateTime newLocalDateTime = localDateTime.plusDays(1); // 前进了一天
// 格式化时间
String result = newLocalDateTime.format(pattern);
System.out.println(result); // 2020年11月12日 00:00:00
- 参数为正 - 就是往后加
- 参数为负 - 就是往前减
public LocalDateTime plusYears(long years)
添加或者减去年
LocalDateTime localDateTime = LocalDateTime.of(2020,1,1,1,1,1); // 2020-01-01T01:01:01
LocalDateTime newLocalDateTime = localDateTime.plusYears(1); // 2021-01-01T01:01:01
LocalDateTime newLocalDateTime = localDateTime.plusYears(-1); // 2019-01-01T01:01:01
public LocalDateTime plusMonths(long months)
添加或者减去月
public LocalDateTime plusDaysong(long days)
添加或者减去日
public LocalDateTime plusHours(long hours)
添加或者减去时
public LocalDateTime plusMinutes(long minutes)
添加或者减去分
public LocalDateTime plusSeconds(long seconds)
添加或者减去秒
public LocalDateTime plusWeeks(long weeks)
添加或者减去周
public LocalDateTime minusYears(long years)
减去或者添加年
LocalDateTime localDateTime = LocalDateTime.of(2020,1,1,1,1,1); // 2020-01-01T01:01:01
LocalDateTime newLocalDateTime = localDateTime.minusYears(1); // 2019-01-01T01:01:01
LocalDateTime newLocalDateTime1 = localDateTime.minusYears(-1); // 2021-01-01T01:01:01
public LocalDateTime minusMonths(long months)
减去或者添加月
public LocalDateTime minusDays(long days)
减去或者添加日
public LocalDateTime minusHours(long hours)
减去或者添加时
public LocalDateTime minusMinutes(long minutes)
减去或者添加分
public LocalDateTime minusSeconds(long seconds)
减去或者添加秒
public LocalDateTime minusWeeks(long weeks)
减去或者添加周
修改时间
修改的时间要符合规范
public LocalDateTime withYear(int year)
直接修改年
LocalDateTime localDateTime = LocalDateTime.of(2020,1,1,1,1,1); // 2020-01-01T01:01:01
LocalDateTime newLocalDateTime = localDateTime.withYear(2022); // 2022-01-01T01:01:01
public LocalDateTime withMonth(int month)
直接修改月
public LocalDateTime with DayOfMonth(int dayofmonth)
直接修改日期(一个月中的第几天)
public LocalDateTime withDayOfYear(int dayOfYear)
直接修改日期(一年中的第几天
public LocalDateTime withHour(int hour)
直接修改小时
public LocalDateTime withMinute(int minute)
直接修改分钟
public LocalDateTime withSecond(int second)
直接修改秒
LocalDateTime - LocalDate/LocalTime
// 获取当前的时间 2022-08-03T20:15:37.196813500
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
// 将指定的时间按照一定的格式输出 2020-01-01T01:01:01
LocalDateTime of = LocalDateTime.of(2020,1,1,1,1,1);
System.out.println(of);
// 截取到年月日 2020-01-01
LocalDate localDate = of.toLocalDate();
System.out.println(localDate);
// 截取到时分秒 01:01:01
LocalTime localTime = of.toLocalTime();
System.out.println(localTime);
获取时间中的每一值
LocalDateTime of = LocalDateTime.of(2020,1,1,1,1,1);
public int getYear() -- 获取年
of.getYear(); // 2020
public int getMonthValue() -- 获取月份(1-12)
public int getDayOfMonth() -- (获取月份中的第几天(1-31)
public int getDayOfYear() -- (获取一年中的第几天1-366)
public DayOfWeek getDayOfWeek() -- 获取星期
public int getMinute() -- 获取分钟
public int getHour() -- 获取小时
时间类
间隔时间
Period
LocalDate of = LocalDate.of(2020, 1, 1);
LocalDate of1 = LocalDate.of(2021, 2, 2);
// 接受两个LocalDate参数
Period period = Period.between(of, of1);
System.out.println(period); // P1Y1M1D
System.out.println(period.getYears()); // 获取间隔年 1
System.out.println(period.getMonths()); // 获取间隔月 1
System.out.println(period.getDays()); // 获取间隔天数 1
Duration
LocalDateTime localDateTime1 = LocalDateTime.of(2021, 1, 1, 11, 12, 12);
LocalDateTime localDateTime2 = LocalDateTime.of(2021, 1, 1, 12, 24, 21);
Duration duration = Duration.between(localDateTime1, localDateTime2);
System.out.println(duration); // PT1H12M9S
System.out.println(duration.getSeconds()); // 4329 秒数
System.out.println(duration.toSeconds()); // 4329
System.out.println(duration.toMillis()); // 4329000 毫秒数
System.out.println(duration.toNanos()); // 4329000000000 纳秒数