JDK 8 LocalDateTime

LocalDate(获取年月日)

  • 创建LocalDate对象
LocalDate localDate = LocalDate.of(2019, 10, 29); // 构造指定的年月日

LocalDate localDate1 = LocalDate.now(); // 获取当前年月日
  • 获取年、月、日、星期
// 获取年
int year = localDate.getYear(); // 2019
int year1 = localDate.get(ChronoField.YEAR); // 2019

// 获取月
Month month = localDate.getMonth(); // OCTOBER
int month1 = localDate.get(ChronoField.MONTH_OF_YEAR); // 10

// 获取日
int day = localDate.getDayOfMonth(); // 29
int day1 = localDate.get(ChronoField.DAY_OF_MONTH); // 29

// 获取星期
DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // TUESDAY
int dayOfWeek1 = localDate.get(ChronoField.DAY_OF_WEEK); // 2

LocalTime(获取时分秒)

  • 创建LocalTime对象
LocalTime localTime = LocalTime.of(10, 07, 30); // 构造指定的时分秒

LocalTime localTime1 = LocalTime.now(); // 获取当前时分秒
  • 获取年、月、日、星期
// 获取时
int hour = localTime.getHour(); // 10
int hour1 = localTime.get(ChronoField.HOUR_OF_DAY); // 10

// 获取分
int minute = localTime.getMinute(); // 7
int minute1 = localTime.get(ChronoField.MINUTE_OF_HOUR); // 7

// 获取秒
int second = localTime.getSecond(); // 30
int second1 = localTime.get(ChronoField.SECOND_OF_MINUTE); // 30

LocalDateTime(获取年月日时分秒)

  • 创建LocalDateTime对象
// 获取当前时分秒、时分秒
LocalDateTime localDateTime = LocalDateTime.now();

// 构造指定的年月日、时分秒
LocalDateTime localDateTime1 = LocalDateTime.of(2019, Month.OCTOBER, 29, 14, 30, 50);

// 根据localDate和localTime来构建LocalDateTime对象
LocalDateTime localDateTime2 = LocalDateTime.of(localDate, localTime);
LocalDateTime localDateTime3 = localDate.atTime(localTime);
LocalDateTime localDateTime4 = localTime.atDate(localDate);
  • 获取LocalDate
LocalDate localDate = localDateTime.toLocalDate();
  • 获取LocalTime
LocalTime localTime = localDateTime.toLocalTime();

Instant(获取秒、毫秒)

  • 创建Instant对象
Instant instant = Instant.now();
  • 获取秒
long currentSecond = instant.getEpochSecond();
  • 获取毫秒
long currentMilli = instant.toEpochMilli();

修改LocalDateTime/LocalDateTime/LocalTime(修改时间)

  • 修改LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now();

// 增加一年
LocalDateTime localDateTime1 = localDateTime.plusYears(1);
LocalDateTime localDateTime2 = localDateTime.plus(1, ChronoUnit.YEARS);
// 减少一年
LocalDateTime localDateTime3 = localDateTime.minusMonths(1);
LocalDateTime localDateTime4 = localDateTime.minus(1, ChronoUnit.YEARS);
// 增加一个月
LocalDateTime localDateTime5 = localDateTime.plusMonths(1);
LocalDateTime localDateTime6 = localDateTime.plus(1,ChronoUnit.MINUTES);
// 减少一个月
LocalDateTime localDateTime7 = localDateTime.minusMonths(1);
LocalDateTime localDateTime8 = localDateTime.minus(1,ChronoUnit.MINUTES);
// 增加一天
LocalDateTime localDateTime9 = localDateTime.plusDays(1);
LocalDateTime localDateTime10 = localDateTime.plus(1,ChronoUnit.DAYS);
// 减少一天
LocalDateTime localDateTime11 = localDateTime.minusDays(1);
LocalDateTime localDateTime12 = localDateTime.minus(1,ChronoUnit.DAYS);
// 增加一小时
LocalDateTime localDateTime13 = localDateTime.plusHours(1);
LocalDateTime localDateTime14 = localDateTime.plus(1,ChronoUnit.HOURS);
// 减少一小时
LocalDateTime localDateTime15 = localDateTime.minusHours(1);
LocalDateTime localDateTime16 = localDateTime.minus(1,ChronoUnit.HOURS);
// 增加一分钟
LocalDateTime localDateTime17 = localDateTime.plusMinutes(1);
LocalDateTime localDateTime18 = localDateTime.plus(1,ChronoUnit.MINUTES);
// 减少一分钟
LocalDateTime localDateTime19 = localDateTime.minusMinutes(1);
LocalDateTime localDateTime20 = localDateTime.minus(1,ChronoUnit.MINUTES);
// 增加一秒
LocalDateTime localDateTime21 = localDateTime.plusSeconds(1);
LocalDateTime localDateTime22 = localDateTime.plus(1,ChronoUnit.SECONDS);
// 减少一秒
LocalDateTime localDateTime23 = localDateTime.minusSeconds(1);
LocalDateTime localDateTime24 = localDateTime.minus(1,ChronoUnit.SECONDS);
// 增加一周
LocalDateTime localDateTime25 = localDateTime.plusWeeks(1);
LocalDateTime localDateTime26 = localDateTime.plus(1,ChronoUnit.WEEKS);
// 减少一周
LocalDateTime localDateTime27 = localDateTime.minusWeeks(1);
LocalDateTime localDateTime28 = localDateTime.minus(1,ChronoUnit.WEEKS);
// 修改成2020年
LocalDateTime localDateTime29 = localDateTime.withYear(2020);
LocalDateTime localDateTime30 = localDateTime.with(ChronoField.YEAR, 2020);
// 修改成7月份
LocalDateTime localDateTime31 = localDateTime.withMonth(7);
LocalDateTime localDateTime32 = localDateTime.with(ChronoField.MONTH_OF_YEAR, 7);
// 修改成当本月5日
LocalDateTime localDateTime33 = localDateTime.withDayOfMonth(5);
LocalDateTime localDateTime34 = localDateTime.with(ChronoField.DAY_OF_MONTH, 5);
// 修改成本年100日
LocalDateTime localDateTime35 = localDateTime.withDayOfYear(100);
LocalDateTime localDateTime36 = localDateTime.with(ChronoField.DAY_OF_YEAR, 100);
// 修改成本日8点钟
LocalDateTime localDateTime37 = localDateTime.withHour(8);
LocalDateTime localDateTime38 = localDateTime.with(ChronoField.HOUR_OF_DAY, 8);
// 修改成本小时30分钟
LocalDateTime localDateTime39 = localDateTime.withMinute(30);
LocalDateTime localDateTime40 = localDateTime.with(ChronoField.MINUTE_OF_HOUR, 30);
// 修改成本分钟30秒钟
LocalDateTime localDateTime41 = localDateTime.withSecond(30);
LocalDateTime localDateTime42 = localDateTime.with(ChronoField.SECOND_OF_MINUTE, 30);
  • 修改LocalDate
LocalDate localDate = LocalDate.now();

// 增加一年
LocalDate localDate1 = localDate.plusYears(1);
LocalDate localDate2 = localDate.plus(1, ChronoUnit.YEARS);
// 减少一年
LocalDate localDate3 = localDate.minusYears(1);
LocalDate localDate4 = localDate.minus(1, ChronoUnit.YEARS);
// 增加一个月
LocalDate localDate5 = localDate.plusMonths(1);
LocalDate localDate6 = localDate.plus(1, ChronoUnit.MONTHS);
// 减少一个月
LocalDate localDate7 = localDate.minusMonths(1);
LocalDate localDate8 = localDate.minus(1, ChronoUnit.MONTHS);
// 增加一天
LocalDate localDate9 = localDate.plusDays(1);
LocalDate localDate10 = localDate.plus(1, ChronoUnit.DAYS);
// 减少一天
LocalDate localDate11 = localDate.minusDays(1);
LocalDate localDate12 = localDate.minus(1, ChronoUnit.DAYS);
// 增加一周
LocalDate localDate13 = localDate.plusWeeks(1);
LocalDate localDate14 = localDate.plus(1, ChronoUnit.WEEKS);
// 减少一周
LocalDate localDate15 = localDate.minusWeeks(1);
LocalDate localDate16 = localDate.minus(1, ChronoUnit.WEEKS);
// 修改成2020年
LocalDate localDate17 = localDate.withYear(2020);
LocalDate localDate18 = localDate.with(ChronoField.YEAR, 2020);
// 修改成7月份
LocalDate localDate19 = localDate.withMonth(7);
LocalDate localDate20 = localDate.with(ChronoField.MONTH_OF_YEAR, 7);
// 修改成本月5日
LocalDate localDate21 = localDate.withDayOfMonth(5);
LocalDate localDate22 = localDate.with(ChronoField.DAY_OF_MONTH, 5);
// 修改成本年100日
LocalDate localDate23 = localDate.withDayOfYear(100);
LocalDate localDate24 = localDate.with(ChronoField.DAY_OF_YEAR, 100);
  • 修改LocalTime
LocalTime localTime = LocalTime.now();

// 增加一小时
LocalTime localTime1 = localTime.plusHours(1);
LocalTime localTime2 = localTime.plus(1, ChronoUnit.HOURS);
// 减少一小时
LocalTime localTime3 = localTime.minusHours(1);
LocalTime localTime4 = localTime.minus(1, ChronoUnit.HOURS);
// 增加一分钟
LocalTime localTime5 = localTime.plusMinutes(1);
LocalTime localTime6 = localTime.plus(1, ChronoUnit.MINUTES);
// 减少一分钟
LocalTime localTime7 = localTime.minusMinutes(1);
LocalTime localTime8 = localTime.minus(1, ChronoUnit.MINUTES);
// 增加一秒
LocalTime localTime9 = localTime.plusSeconds(1);
LocalTime localTime10 = localTime.plus(1, ChronoUnit.SECONDS);
// 减少一秒
LocalTime localTime11 = localTime.minusSeconds(1);
LocalTime localTime12 = localTime.minus(1, ChronoUnit.SECONDS);
// 修改成本日8点钟
LocalTime localTime13 = localTime.withHour(8);
LocalTime localTime14 = localTime.with(ChronoField.HOUR_OF_DAY, 8);
// 修改成本小时30分钟
LocalTime localTime15 = localTime.withMinute(30);
LocalTime localTime16 = localTime.with(ChronoField.MINUTE_OF_HOUR, 30);
// 修改成本分钟30秒钟
LocalTime localTime17 = localTime.withSecond(30);
LocalTime localTime18 = localTime.with(ChronoField.SECOND_OF_MINUTE, 30);

时间格式化

  • LocalDateTime时间格式化
LocalDateTime localDateTime = LocalDateTime.now();

String s1 = localDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); // 2019-10-29T13:47:21.562

String s2 = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 自定义格式化 2019-10-29 13:47:21
  • LocalDate时间格式化
LocalDate localDate = LocalDate.now();

String s1 = localDate.format(DateTimeFormatter.BASIC_ISO_DATE); // 20191029
String s2 = localDate.format(DateTimeFormatter.ISO_LOCAL_DATE); // 2019-10-29

String s3 = localDate.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 自定义格式化 2019/10/29

解析时间

  • LocalDateTime解析时间
LocalDateTime localDateTime1 = LocalDateTime.parse("2019-10-29T13:47:21.562", DateTimeFormatter.ISO_LOCAL_DATE_TIME);

LocalDateTime localDateTime2 = LocalDateTime.parse("2019-10-29 13:47:21", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
  • LocalDate解析时间
LocalDate localDate1 = LocalDate.parse("20190910", DateTimeFormatter.BASIC_ISO_DATE); // 2019-09-10
LocalDate localDate2 = LocalDate.parse("2019-09-10", DateTimeFormatter.ISO_LOCAL_DATE); // 2019-09-10

LocalDate localDate3 = LocalDate.parse("2019/09/10", DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 自定义时间格式化类型类型 2019-09-10

Date、LocalDateTime、LocalDate、LocalTime之间的装换

  • Date -> LocalDateTime
Date date = new Date();
Instant instant = date.toInstant(); // 时刻
ZoneId zone = ZoneId.systemDefault(); // 时区
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
  • Date -> LocalDate
Date date = new Date();
Instant instant = date.toInstant(); // 时刻
ZoneId zone = ZoneId.systemDefault(); // 时区
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalDate localDate = localDateTime.toLocalDate();
  • Date -> LocalTime
Date date = new Date();
Instant instant = date.toInstant(); // 时刻
ZoneId zone = ZoneId.systemDefault(); // 时区
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalTime localTime = localDateTime.toLocalTime();
  • LocalDateTime -> Date
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zone = ZoneId.systemDefault(); // 时区
Instant instant = localDateTime.atZone(zone).toInstant(); // 时刻
Date date = Date.from(instant);
  • LocalDate -> Date
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault(); // 时区
Instant instant = localDate.atStartOfDay().atZone(zone).toInstant(); // 时刻
Date date = Date.from(instant);
  • LocalTime -> Date
LocalTime localTime = LocalTime.now();
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
ZoneId zone = ZoneId.systemDefault(); // 时区
Instant instant = localDateTime.atZone(zone).toInstant(); // 时刻
Date date = Date.from(instant);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值