JDK8 之后的日期,时间
LocalDate, LocalTime, LocalDateTime
它们获取对象方案
public static Xxxx now(): 获取系统当前时间对应的对象
public static Xxx of(…): 获取指定时间的对象
- LocalDate代表 年月日星期
- LocalTime代表 时分秒纳秒
- LocalDateTime代表 月日星期,时分秒纳秒
它们常用的一些方法(with~, minus~, plus~):
package date_use_new;
import java.time.LocalDate;
public class Test1_LocalDate {
public static void main(String[] args) {
//0,获取本地日期对象(不可变对象)
LocalDate ld = LocalDate.now();//年 月 日
System.out.println(ld);
//1.获取日期对象中的信息
int year = ld.getYear();// 年
int month = ld.getMonthValue();// 月(1——12)
int day = ld.getDayOfMonth();// 日
int dayOfYear = ld.getDayOfYear();// 一年中的第几天
System.out.println(year);
System.out.println(day);
System.out.println(dayOfYear);
//2.直接修改某个信息:withYear,withMonth,withDayOfMonth
LocalDate ld2 = ld.withYear(2099);
LocalDate ld3 = ld.withMonth(12);
System.out.println(ld2);
System.out.println(ld3);
System.out.println(ld);
//3.把某个信息加多少:plusYears,plusMonths,plusDays,plusWeeks
LocalDate ld4 = ld.plusYears(2);
LocalDate ld5 = ld.plusMonths(2);
//4.把某个信息减多少:minusYears,minusMonths,minusDays,minusWeeks
LocalDate ld6 = ld.minusYears(2);
LocalDate ld7 = ld.minusMonths(2);
System.out.println(ld7);
//5.获取指定日期的LocalDate对象:
LocalDate ld8 = LocalDate.of(2099, 12, 12);
LocalDate ld9 = LocalDate.of(2099, 12, 12);
//6.判断两个日期对象是否相等,是在前还是在后:equals,isBefore,isAfter
System.out.println(ld8.equals(ld9));//true
System.out.println(ld8.isAfter(ld));//true
System.out.println(ld8.isBefore(ld));//false
//可以把LocalDateTime转换成LocalDate(年,月,日,星期)和LocalTime(时分秒纳秒)
// public LocalDate toLocalDate()
// public LocalDate toLocalDate()
// public static LocalDateTime of(LocalDate date,LocalTime date)
// -------三者之间方法类似,with~,plus~,minus~-----------
/*
LocalDate ld = ldt.toLocalDate();
LocalDate lt = ldt.toLocalTime();
LocalDateTime ldt10 = LocalDateTime.of(ld,lt)
* */
}
}
ZoneId, ZoneDateTime
ZoneDateTime 带时区时间的常见方法
方法名 | 说明 |
---|---|
public ZoneDateTime withXxx(时间) | 修改时间系列的方法 |
public ZoneDateTime minusXxx(时间) | 减少时间系列的方法 |
public ZoneDateTime plusXxx(时间) | 增加时间系列的方法 |
它们常用的一些方法:
package date_use_new;
import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Test4_ZoneId_ZonedDateTime {
public static void main(String[] args) {
// 目标:了解时区和带时区的时间
// 1.ZoneId的常见方法
// public static ZoneId systemDefault(): 获取系统默认的时区
ZoneId zoneId = ZoneId.systemDefault();
System.out.println(zoneId.getId());
System.out.println(zoneId);
//public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
System.out.println(ZoneId.getAvailableZoneIds());
// public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象
ZoneId zoneId1 = ZoneId.of("America/New_York");
//2. ZoneDateTime: 带时区的时间
// public static ZoneDateTime now ( ZoneId zone) : 获取某个时区的ZoneDateTime对象
ZonedDateTime now = ZonedDateTime.now(zoneId1);
System.out.println(now);
// 世界标准时间
ZonedDateTime now1 = ZonedDateTime.now(Clock.systemUTC());
System.out.println(now1);
// public static ZoneDateTime now() : 获取系统默认时区的ZoneDateTime对象
ZonedDateTime now2 = ZonedDateTime.now();
System.out.println(now2);
}
}