Java 8 的所有日期和时间API都是不可变类并且线程安全,而现有的Date和Calendar API中的java.util.Date和SimpleDateFormat是非线程安全的。
javax.time.ZoneId 获取时区。LocalDate和LocalTime类获取时间
//获取当天的日期及年月日
public static void getCurrentDate(){
LocalDate today = LocalDate.now();
System.out.println("Local date : " + today);
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
System.out.printf("Year : %d Month : %d day : %d t %n", year, month, day);
}
//处理特定日期
public static void handleSpecilDate(){
LocalDate dateOfBirth = LocalDate.of(2020, 06, 21);
System.out.println("The specil date is : " + dateOfBirth);
}
//获取当前时间
public static void getCurrentTime(){
LocalTime time = LocalTime.now();
System.out.println("local time now : " + time);
// 增加两小时
LocalTime newTime = time.plusHours(2);
System.out.println("Time after 2 hours : " + newTime);
//增加一周
LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS);
System.out.println("Date after 1 week : " + nextWeek);
}
public static void clock(){
// 根据系统时间返回当前时间并设置为UTC。
Clock clock = Clock.systemUTC();
System.out.println("Clock : " + clock);
// 根据系统时钟区域返回时间
Clock defaultClock = Clock.systemDefaultZone();
System.out.println("Clock : " + clock);
}