7-Java8新增的日期、时间类

Java8新增的日期、时间包



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//下面是关于 Clock 的用法
//获取当前 Clock
Clock clock=Clock.systemUTC();//使用世界时生成 clock
//通过 Clock 获取当前时刻
System.out.println("当前时刻为:"+ clock.instant();
//获取 clock 对象对应的毫秒数,与 System.currentTimeMillis() 输出相同
System.out.println(clock.millis());
System.out.println(System.currentTimeMillis());

//--下面是关于 Duration 的用法
Duration duration=Duration.ofSeconds(6000);
System.out.println("6000秒相当于"+ duration.toMinutes + "分");
System.out.println("6000秒相当于"+ duration.toHours() + "小时");
System.out.println("6000秒相当于"+ duration.toDays() + "天");
//在 clock 对象基础上增加6000秒,返回新的 Clock
Clock clock2=Clock.offset(clock,duration);

//---下面是关于 Instant 的用法
//获取当前时间
Instant instant=Instant.now();
System.out.pritnln(instant);
//instant 添加 6000秒(即100分钟),返回新的 Instant
Instant instant2=instant.plusSeconds(6000);
System.out.println(instant2);
//根据字符串解析 Instant 对象
Instant instant3=Instant.parse("2018-03-11T23:12:45.891Z");
System.out.println(instant3);
//在 instant3 的基础上添加 5小时4分钟
Instant instant4=instant3.plus(Duration.ofHours(5).plusMinutes(4));
System.out.println(instant4);
//获取 instant4 的5天以前的时刻
Instant instant5=instant4.mimutes(Duration.ofDays(5));
System.out.println(instant5);

//---下面是关于 LocalDate 的用法
LocalDate localDate=LocalDate.now();
System.out.println(localDate);
//获得2018年的第146天
localDate=LocalDate.ofYearDay(2018,146);
System.out.println(localDate); //2018-05-26
//设置为 2018年5月26日
localDate=LocalDate.of(2018,Month.May,26);

//---下面是关于 LocalTime 的用法
//获取当前时间
LocalTime localTime=LocalTime.now();
//设置为 22点33分
localTime=LocalTime.of(22,33);
//返回一天中的第 5503秒
localTime=LocalTime.ofSecondofDay(5503);

//---下面是关于 LocalDateTime 的用法
//获取当前日期、时间
LocalDateTime localDateTime=LocalDateTime.now();
//当前日期、时间加上25小时3分钟
LocalDateTime future=localDateTime.plusHours(25).plusMinutes(3);

//---下面是关于 Year、Year Month、MonthDay 的用法
Year year=Year.now();
//当前年份再加5年
year=year.plusYears(5);
//根据指定月份获取 YearMonth
YearMonth yearMonth=year.atMonth(10);//输出 XXXX-10,XXXX为当前年份
//当前年份再加5年、减去3个月
year=year.plusYears(5).minusMonths(3);
//当前日期
MonthDay monthDay=MonthDay.now();
//设置为5月23日
MonthDay monthDay2=monthDay.with(Month.MAY).withDayOfMonth(23);