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 }