关键类
Instant:瞬时实例。
LocalDate:本地日期,不包含具体时间 例如:2014-01-14 可以用来记录生日、纪念日、加盟日等。
LocalTime:本地时间,不包含日期。
LocalDateTime:组合了日期和时间,但不包含时差和时区信息。
ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Java8DateTimeDemo {
public static void main(String[] args) {
System.out.println("# LocalDate 日期演示");
dateDemo();
System.out.println("# LocalTime 时间演示");
timeDemo();
System.out.println("# LocalDateTime 日期时间演示");
datetimeDemo();
System.out.println("# LocalDateTime 日期时间与字符串转换演示");
formatDemo();
}
// 日期演示
public static void dateDemo() {
// 获取当前日期
LocalDate localDate = LocalDate.now();
System.out.println("localDate:" + localDate);
// 创建指定日期 注意月份是从1开始
LocalDate myDate = LocalDate.of(2019, 6, 26);
System.out.println("myDate:" + myDate);
// 获取日期详情
System.out.println(myDate.getYear() + "-" + myDate.getMonthValue() + "-" + myDate.getDayOfMonth());
// 日期比较
System.out.println("是否相等:" + localDate.equals(myDate));
System.out.println("是否晚于:" + localDate.isAfter(myDate));
System.out.println("比较:" + localDate.compareTo(myDate));
// 日期加减计算
LocalDate newDate = localDate.plus(1, ChronoUnit.DAYS);
System.out.println("newDate:" + newDate);
}
// 时间演示
public static void timeDemo() {
// 获取当前时间
LocalTime localTime = LocalTime.now();
System.out.println("localTime:" + localTime);
// 创建指定时间
LocalTime myTime = LocalTime.of(10, 10, 10);
System.out.println("myTime:" + myTime);
// 获取时间详情
System.out.println(myTime.getHour() + ":" + myTime.getMinute() + ":" + myTime.getSecond());
// 时间比较
System.out.println("是否相等:" + localTime.equals(myTime));
System.out.println("是否晚于:" + localTime.isAfter(myTime));
System.out.println("比较:" + localTime.compareTo(myTime));
// 时间加减计算
LocalTime newTime = localTime.plus(1, ChronoUnit.HOURS);
System.out.println("newTime:" + newTime);
}
// 日期时间演示
public static void datetimeDemo() {
// 获取当前日期时间
LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 创建指定日期时间
LocalDateTime my = LocalDateTime.of(2019, 7, 6, 10, 10, 10);
System.out.println("my:" + my);
// 获取日期时间详情
System.out.println(my.getYear() + "-" + my.getMonthValue() + "-" + my.getDayOfMonth());
System.out.println(my.getHour() + ":" + my.getMinute() + ":" + my.getSecond());
// 日期时间比较
System.out.println("是否相等:" + now.equals(my));
System.out.println("是否晚于:" + now.isAfter(my));
System.out.println("比较:" + now.compareTo(my));
// 日期时间加减计算
LocalDateTime newDateTime = now.plus(1, ChronoUnit.YEARS);
System.out.println("newDateTime:" + newDateTime);
}
// 格式化压实
public static void formatDemo() {
//格式化样式类
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 日期时间转字符串
LocalDateTime now = LocalDateTime.now();
String nowStr = now.format(formatter);
System.out.println("nowStr:" + nowStr);
// 字符串转日期时间
String datetimeStr = "2019-07-06 10:10:10";
LocalDateTime datetime = LocalDateTime.parse(datetimeStr, formatter);
System.out.println("datetime:"+datetime);
}
}