JDK8 时间相关API基本使用

  1 package com.atguigu.date;
  2 
  3 import java.time.Clock;
  4 import java.time.DayOfWeek;
  5 import java.time.Duration;
  6 import java.time.Instant;
  7 import java.time.LocalDate;
  8 import java.time.LocalDateTime;
  9 import java.time.LocalTime;
 10 import java.time.MonthDay;
 11 import java.time.Period;
 12 import java.time.ZoneId;
 13 import java.time.ZonedDateTime;
 14 import java.time.format.DateTimeFormatter;
 15 import java.time.format.FormatStyle;
 16 import java.time.temporal.TemporalAdjuster;
 17 import java.time.temporal.TemporalAdjusters;
 18 import java.util.Set;
 19 
 20 import org.junit.Test;
 21 
 22 public class TestDate {
 23     @Test
 24     public void testDateTimeFormatter(){
 25         DateTimeFormatter df = DateTimeFormatter.ISO_DATE;
 26         LocalDate date = LocalDate.now();
 27         System.out.println(df.format(date));
 28         System.out.println(date.format(df));
 29         
 30         DateTimeFormatter of = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);//只有日期类型才可以使用FULL
 31         System.out.println(of.format(LocalDate.now()));
 32         
 33         //日期时间不可以使用FULL
 34         DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
 35         System.out.println(dtf.format(LocalDateTime.now()));//2017年8月14日 下午08时47分15秒
 36     
 37         DateTimeFormatter op = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 38         System.out.println(op.format(LocalDateTime.now()));
 39     }
 40     @Test
 41     public void testTemporalAdjuster(){
 42         LocalDate now = LocalDate.now();//2017-8-26
 43         TemporalAdjuster t = TemporalAdjusters.next(DayOfWeek.SUNDAY);
 44         LocalDate nd = now.with(t);//最近的那个星期天
 45         System.out.println(nd);
 46         
 47         
 48     }
 49     
 50     @Test
 51     public void testPeriod(){
 52         Period p = Period.between(LocalDate.of(2016, 1, 1), LocalDate.now());
 53         System.out.println(p);//P7M13D
 54         
 55         System.out.println(p.getYears());//1年
 56         System.out.println(p.getMonths());//又7个月
 57         System.out.println(p.getDays());//零25天
 58         System.out.println(p.toTotalMonths());//总共19个月
 59         
 60     }
 61     @Test
 62     public void testDuration(){
 63         Duration dur = Duration.between( Instant.ofEpochMilli(Integer.MAX_VALUE),Instant.now());
 64         System.out.println(dur);
 65         
 66         System.out.println(dur.toDays());
 67         System.out.println(dur.toHours());
 68         System.out.println(dur.toMinutes());
 69         System.out.println(dur.toMillis());
 70         System.out.println(dur.toNanos());
 71         
 72         System.out.println(dur.getSeconds());
 73         System.out.println(dur.getNano());
 74     }
 75     
 76     
 77     @Test
 78     public void testInstant(){
 79         Instant now = Instant.now();
 80         System.out.println(now);
 81         
 82     }
 83     
 84     @Test
 85     public void testLocalDate2(){
 86         LocalDate t1 = LocalDate.now();//只有日期
 87         
 88         System.out.println(t1.plusDays(45));//45天以后是什么日期  2017-10-10
 89         System.out.println(t1.minusDays(20));
 90         System.out.println(t1.plusWeeks(2));
 91         
 92         System.out.println(t1.with(TemporalAdjusters.firstDayOfMonth()));
 93         System.out.println(t1.with(TemporalAdjusters.lastDayOfMonth()));
 94         
 95         System.out.println(t1.isLeapYear());
 96         
 97         MonthDay month = MonthDay.of(8, 14);
 98         MonthDay from = MonthDay.from(t1);
 99         System.out.println("是否是你的生日:"+month.equals(from));
100     }
101     
102     @Test
103     public void testLocalDate(){
104         LocalDate t1 = LocalDate.now();//只有日期
105         System.out.println(t1);
106         
107         System.out.println("年:"+t1.getYear());
108         System.out.println("月:"+t1.getMonth());
109         System.out.println("日:"+t1.getDayOfMonth());
110         System.out.println("星期:"+t1.getDayOfWeek());
111         
112         LocalTime t2 = LocalTime.now();//只有时间
113         System.out.println(t2);
114         System.out.println("时:" + t2.getHour());
115         System.out.println("分:" + t2.getMinute());
116         System.out.println("秒:" + t2.getSecond());
117         System.out.println("纳秒:" +t2.getNano());
118         
119         System.out.println(t2.plusHours(12));
120         
121         LocalDateTime t3 = LocalDateTime.now();//有日期和时间
122         System.out.println(t3);
123     }
124     
125     @Test
126     public void test(){
127         ZonedDateTime now = ZonedDateTime.now();
128         System.out.println(now);
129         
130         Clock c = Clock.system(ZoneId.of("America/New_York"));
131         ZonedDateTime now2 = ZonedDateTime.now(c);
132         System.out.println(now2);
133         
134         Clock c3 = Clock.system(ZoneId.of("Asia/Tokyo"));
135         ZonedDateTime now3 = ZonedDateTime.now(c3);
136         System.out.println(now3);
137         
138         
139     }
140     
141     @Test
142     public void testClock(){
143 /*        Clock clock = Clock.systemDefaultZone();
144         System.out.println(clock);
145         System.out.println(clock.millis());
146         
147         Clock c = Clock.system(ZoneId.of("America/New_York"));
148         System.out.println(c);
149         System.out.println(c.millis());*/
150         
151         Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
152         for (String string : availableZoneIds) {
153             System.out.println(string);
154         }
155     }
156 }

 

posted @ 2020-07-18 13:09  纵不朽  阅读(166)  评论(0编辑  收藏  举报