Java8日期时间处理

待我称王封你为后i 2023-09-23 20:39 230阅读 0赞

日期时间结构

在这里插入图片描述

项目问题

一,一天时间范围

@Test
public void mm() {
// 获取当前日期
LocalDate nowDate = LocalDate.now();
// 设置当天开始时间
LocalDateTime beginTime = LocalDateTime.of(nowDate, LocalTime.MIN);
Date start = Date.from( beginTime.atZone( ZoneId.systemDefault()).toInstant());
System.out.println(start);
// 设置当天的结束时间
LocalDateTime endTime = LocalDateTime.of(nowDate, LocalTime.MAX);
Date end = Date.from( endTime.atZone( ZoneId.systemDefault()).toInstant());
System.out.println(end);
}

案例

一,获取日期

@Test
public void aa() {
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
System.out.println(localDate.getYear());
System.out.println(localDate.getMonth().getValue());
System.out.println(localDate.getDayOfWeek().getValue());
}

二,获取时间

@Test
public void nn() {
LocalTime localTime = LocalTime.now();
// 获取小时
int hour = localTime.getHour();
int hour1 = localTime.get(ChronoField.HOUR_OF_DAY);
// 获取分
int minute = localTime.getMinute();
int minute1 = localTime.get(ChronoField.MINUTE_OF_HOUR);
// 获取秒
int second = localTime.getSecond();
int second1 = localTime.get(ChronoField.SECOND_OF_MINUTE);
}

三,获取日期时间

@Test
public void bb() {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
System.out.println(localDateTime.getYear());
System.out.println(localDateTime.getMonth());
System.out.println(localDateTime.getDayOfWeek());

}

四,获取带时区的日期时间

@Test
public void gg() {
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
ZoneId zoneId = ZoneId.of(“America/New_York”);
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime1 = ZonedDateTime.of(localDateTime, zoneId);
System.out.println(zonedDateTime1);
}

五,获取秒数

@Test
public void oo() {
// 创建Instant对象
Instant instant = Instant.now();
// 获取秒数
long currentSecond = instant.getEpochSecond();
// 获取毫秒数
long currentMilli = instant.toEpochMilli();
}

六,获取时间戳

// 在Java 8中获取当前的时间戳
@Test
public void jj() {
Instant timestamp = Instant.now();
System.out.println(“What is value of this instant “ + timestamp.toEpochMilli());
}

七,处理特定日期

// of
@Test
public void cc() {
LocalDate of = LocalDate.of(2018, 2, 2);
System.out.println(of);
LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
System.out.println(LocalTime.MAX);
LocalDateTime of1 = LocalDateTime.of(2020, 2, 2, 02, 33, 22);
System.out.println(of1);
}

八,时间调整和处理

@Test
public void pp() {
LocalDateTime now = LocalDateTime.now();
// 一年中的五月
LocalDateTime may = now.with(Month.MAY);
// 月的某一天
LocalDateTime dayOfMonth = now.with(ChronoField.DAY_OF_MONTH, 20);
// 月的第一天
LocalDateTime firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth());
// 月的最后一天
LocalDateTime result = now.with(Month.FEBRUARY).with(TemporalAdjusters.lastDayOfMonth());
System.out.println(“一年中的五月”+may);
System.out.println(“月的某一天”+dayOfMonth);
System.out.println(“月的第一天”+firstDayOfMonth);
System.out.println(“月的最后一天”+result);
}

九, 时间加减

// 向前向后
@Test
public void dd() {
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
// 向后
LocalDate plus = localDate.plus(2, ChronoUnit.YEARS);
System.out.println(plus);
// 向前
LocalDate minus = localDate.minus(2, ChronoUnit.YEARS);
System.out.println(minus);
}

十,时钟

// 时钟
@Test
public void ee() {

  1. System.out.println(System.currentTimeMillis());
  2. System.out.println(new Date().getTime());
  3. // java8
  4. // 根据您的系统时钟返回当前时间并设置为UTC。(默认)
  5. Clock clock = Clock.systemUTC();
  6. System.out.println("Clock : " + clock.millis());
  7. // Returns time based on system clock zone
  8. // 根据系统时钟区返回时间
  9. Clock defaultClock = Clock.systemDefaultZone();
  10. System.out.println("Clock : " + defaultClock.millis());

}

十一,判断日期是早还是晚某个时间

// 判断日期是早还是晚某个时间
@Test
public void ff() {
LocalDate localDate = LocalDate.now();
if (localDate.isBefore(LocalDate.of(2022, 2, 2))) {
System.out.println(“localDate isBefore “);
}
if (localDate.isAfter(LocalDate.of(2022, 2, 2))) {
System.out.println(“localDate isAfter “);
}

}

十二,处理时区

// 处理时区
@Test
public void gg() {
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
ZoneId zoneId = ZoneId.of(“America/New_York”);
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime1 = ZonedDateTime.of(localDateTime, zoneId);
System.out.println(zonedDateTime1);
}

十三,闰年

// 闰年
@Test
public void hh() {
LocalDate localDate = LocalDate.now();
if (localDate.isLeapYear()) {
System.out.println(“This year is Leap year”);
} else {
System.out.println(“This year is not a Leap year”);
}
}

十四,计算两个日期之间的天数和月数

// 计算两个日期之间的天数和月数
@Test
public void ii() {

  1. LocalDate today = LocalDate.now();
  2. LocalDate java8Release = LocalDate.of(2018, 12, 14);
  3. Period periodToNextJavaRelease = Period.between(today, java8Release);
  4. System.out.println("Years left between today and Java 8 release : "
  5. + periodToNextJavaRelease.getYears() );
  6. System.out.println("Months left between today and Java 8 release : "
  7. + periodToNextJavaRelease.getMonths() );
  8. System.out.println("Days left between today and Java 8 release : "
  9. + periodToNextJavaRelease.getDays() );

}

十五,格式化时间

// 格式化时间

java8之前

  1. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  2. System.out.println(simpleDateFormat.format(new Date()));

java8

  1. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  2. System.out.println(LocalDate.now().format(formatter));
  3. DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
  4. System.out.println(LocalDateTime.now().format(formatter1));

十六,时间字符串互转

// 时间字符串互转
@Test
public void ll() {

  1. /**
  2. * 时间转字符串
  3. */
  4. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  5. System.out.println(LocalDate.now().format(formatter));
  6. /**
  7. * 字符串转时间
  8. * 默认转换格式 2022-12-30
  9. */
  10. LocalDate parse = LocalDate.parse("2022-12-30");
  11. System.out.println(parse);
  12. DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  13. LocalDate parse1 = LocalDate.parse("2022-12-30", formatter1);
  14. System.out.println(parse1);
  15. DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd");
  16. LocalDate parse2 = LocalDate.parse("20221230", formatter2);
  17. System.out.println(parse2);
  18. System.out.println(parse2.format(formatter2));

}

发表评论

表情:
评论列表 (有 0 条评论,230人围观)

还没有评论,来说两句吧...

相关阅读