java8 time api_Java8-java.time-常用API

1 packagecom.gzh.time;2

3 importjava.time.DayOfWeek;4 importjava.time.Instant;5 importjava.time.LocalDate;6 importjava.time.LocalDateTime;7 importjava.time.LocalTime;8 importjava.time.Period;9 importjava.time.ZoneId;10 importjava.time.format.DateTimeFormatter;11 importjava.time.temporal.TemporalAdjusters;12 importjava.util.Calendar;13 importjava.util.Date;14

15 importorg.junit.Test;16

17 public classTimeTest {18

19 //LocalDate;LocalTime;LocalDateTime

20 @Test21 public voidtest() {22

23 //获取当前时间:2020-03-08

24 System.out.println(LocalDate.now());25 //获取当前时间:15:20:40.158

26 System.out.println(LocalTime.now());27 //获取当前时间:2020-03-08T15:20:40.158

28 System.out.println(LocalDateTime.now());29

30 //DateTimeFormatter---ISO系类转化31 //BASIC_ISO_DATE :20200308

32 System.out.println("BASIC_ISO_DATE :" +DateTimeFormatter.BASIC_ISO_DATE.format(LocalDateTime.now()));33 //ISO_DATE :2020-03-08

34 System.out.println("ISO_DATE :" +DateTimeFormatter.ISO_DATE.format(LocalDateTime.now()));35 //ISO_DATE_TIME :2020-03-08T16:33:27.489

36 System.out.println("ISO_DATE_TIME :" +DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now()));37 //ISO_LOCAL_DATE :2020-03-08

38 System.out.println("ISO_LOCAL_DATE :" +DateTimeFormatter.ISO_LOCAL_DATE.format(LocalDateTime.now()));39 //ISO_LOCAL_DATE_TIME :2020-03-08T16:33:27.49

40 System.out.println("ISO_LOCAL_DATE_TIME :" +DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(LocalDateTime.now()));41 //ISO_LOCAL_TIME :16:33:27.49

42 System.out.println("ISO_LOCAL_TIME :" +DateTimeFormatter.ISO_LOCAL_TIME.format(LocalDateTime.now()));43 //ISO_ORDINAL_DATE :2020-068

44 System.out.println("ISO_ORDINAL_DATE :" +DateTimeFormatter.ISO_ORDINAL_DATE.format(LocalDateTime.now()));45 //ISO_TIME :16:33:27.49

46 System.out.println("ISO_TIME :" +DateTimeFormatter.ISO_TIME.format(LocalDateTime.now()));47 //ISO_WEEK_DATE :2020-W10-7

48 System.out.println("ISO_WEEK_DATE :" +DateTimeFormatter.ISO_WEEK_DATE.format(LocalDateTime.now()));49

50 //DateTimeFormatter格式转化

51 DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //ISO_DATE;ISO_LOCAL_DATE

52 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("HH:mm:ss");53 DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");54 //转化日期:2020-03-08

55 System.out.println(dtf1.format(LocalDate.now()));56 //转化日期:2020-03-08

57 System.out.println(dtf1.format(LocalDateTime.now()));58 //转化日期:15:20:40

59 System.out.println(dtf2.format(LocalTime.now()));60 //转化日期:15:20:40

61 System.out.println(dtf2.format(LocalDateTime.now()));62 //转化日期:2020-03-08 15:20:40

63 System.out.println(dtf3.format(LocalDateTime.now()));64

65 LocalDateTime ldt1 = LocalDateTime.of(2020, 12, 12, 0, 0, 0);66 //LocalDateTime-->LocalDate

67 LocalDate localDate1 =ldt1.toLocalDate();68 //LocalDateTime-->LocalTime

69 LocalTime localTime1 =ldt1.toLocalTime();70

71 //java.util.Date --> LocalDateTime

72 LocalDateTime ldt2 = LocalDateTime.ofInstant(newDate().toInstant(), ZoneId.systemDefault());73 //LocalDateTime -->java.util.Date

74 LocalDate localDate2 =LocalDate.now();75 LocalTime localTime2 =LocalTime.now();76 LocalDateTime localDateTime2 =LocalDateTime.of(localDate2, localTime2);77 Instant instant =localDateTime2.atZone(ZoneId.systemDefault()).toInstant();78 System.out.println(Date.from(instant));79

80 //LocalDate常用81 //计算时间差--天数差

82 LocalDate localDate3 = LocalDate.of(2008, 1, 1);83 LocalDate localDate4 = LocalDate.of(2018, 12, 12);84 //天数差:3998

85 System.out.println("天数差 :" + (localDate4.toEpochDay()-localDate3.toEpochDay()));86

87 //计算当年是否是闰年:isLeapYear()

88 System.out.println("isLeapYear :" +LocalDate.now().isLeapYear());89

90 //计算生日

91 Period betweenDate = Period.between(LocalDate.now(), LocalDate.of(2000, 12, 31));92 int age =betweenDate.getYears();93 System.out.println(age);94

95 //利用时间矫正器TemporalAdjuster

96 LocalDate localDate5 =LocalDate.now();97 //LocalDate.with(TemporalAdjuster adjuster):利用TemporalAdjuster的工具类TemporalAdjusters

98 LocalDate firstDayOfMonth =localDate5.with(TemporalAdjusters.firstDayOfMonth());99 System.out.println("firstDayOfMonth :"+firstDayOfMonth);100 TemporalAdjusters.firstDayOfYear();101 TemporalAdjusters.lastDayOfMonth();102 TemporalAdjusters.lastDayOfYear();103 TemporalAdjusters.firstDayOfNextMonth();104 TemporalAdjusters.firstDayOfNextYear();105 //计算某一天的下一个工作日 :@FunctionalInterface--TemporalAdjuster

106 LocalDate nextWorkDay = localDate5.with((time)->{107 LocalDate localDate =(LocalDate) time;108 if(localDate.getDayOfWeek().equals(DayOfWeek.FRIDAY)) {109 return localDate.plusDays(3);110 }else if(localDate.getDayOfWeek().equals(DayOfWeek.SATURDAY)){111 return localDate.plusDays(2);112 }else{113 return localDate.plusDays(1);114 }115

116 });117 System.out.println("nextWorkDay" +nextWorkDay);118 }119

120 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值