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 }